Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
#66305
Prezados, boa noite

eu desenvolvi um código que vai copiar os dados de uma planilha colar e uma nova, o usuário vai informar via inputbox o nome da nova planilha e o código vai rodar, o problema é se o usuário tentar criar duas planihas com o mesmo nome, o excel até exibe uma mensagem dizendo:

erro em tempo de execução '1004'
esse nome já foi usado. Escolha outro

porém mesmo assim o excel acaba criando a planilha, no entanto ele define automaticamente um nome para a nova planilha.

alguém sabe como faço para poder criar uma verificação, se já existir uma planilha com o mesmo nome que o usuário esta tentando criar, o excel não vai deixar.

exemplo:
Código: Selecionar todos
if nomedaplanilha = "alguma planilha já existente then
....
....
...
código utilizado na minha planilha de teste
Código: Selecionar todos
Sub criarnovaplanilha()

    Dim nomedaplanilha As String
    
    nomedaplanilha = InputBox("Digite aqui o nome da sua nova planilha", "Criando uma nova planilha")

' eu copio os dados dessa planilha, ela será minha base   
 Sheets("teste").Select
    
    Sheets("teste").Copy After:=Sheets(1)
    
    ActiveSheet.Name = nomedaplanilha
    
    ActiveSheet.Range("d2").Value = nomedaplanilha
     
        
End Sub
#66313
Bom dia
Veja se era isso .

Sub criarnovaplanilha()
Dim nomedaplanilha As String
nomedaplanilha = InputBox("Digite aqui o nome da sua nova planilha", "Criando uma nova planilha")
If Evaluate("ISREF('" & "" & nomedaplanilha & "" & "'!A1)") Then MsgBox "Esta planilha já existe": Exit Sub
'eu copio os dados dessa planilha, ela será minha base
Sheets("Teste").Select
Sheets("Teste").Copy After:=Sheets(1)
ActiveSheet.Name = nomedaplanilha
ActiveSheet.Range("d2").Value = nomedaplanilha
End Sub


Até
Foxtri
#66329
bom dia

poderia me explicar essa linha de código, caso eu precise adpatar para outras condições de verificação, por exemplo verificar um texto digitado em um text box, em um userform ao invés de usar um inputbox.

supondo que eu troque o meu inputbox por um textbox existente em um userform
Código: Selecionar todos
If Evaluate("ISREF('" & "" & nomedaplanilha & "" & "'!A1)") Then MsgBox "Esta planilha já existe": Exit Sub
desde já agradeço
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord