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
Por diogobastos1985
#35774
Oi pessoal estou com um problema em uma rotina para criar abas na minha planilha

O meu codigo é muito maior mas o problema esta nesse rotina aqui:
Código: Selecionar todos
Sub codigo()
 
 
    cntsheets = Application.Sheets.Count
    Set NewSheet = Application.Worksheets.Add(after:=Worksheets(cntsheets))
    NewSheet.Name = "Regression"
    FinalCol = 0
    ShtName = Application.ActiveSheet.name
End Sub
Com essa rotina eu crio a aba "Regression". Para criar a aba "Regression1" eu preciso alterar no codigo o q era Regression para Regression1 e mandar rodar. e assim por diante até a aba Regression5

Bom, uma solucao q eu tentei foi essa:
Código: Selecionar todos
Sub codigo()
 
 
    cntsheets = Application.Sheets.Count
    Set NewSheet = Application.Worksheets.Add(after:=Worksheets(cntsheets))
    For i=1 to 5
    NewSheet.Name = "Regression" & i
    Next
    FinalCol = 0
    ShtName = Application.ActiveSheet.name
End Sub
Só que apesar de criar vem com um erro:
Código: Selecionar todos
"Erro de definicao de aplicativo ou de definição de objeto"
Como consigo evitar de entrar no codigo e ficar alterando de Regression para Regression1 e mandar rodar; de Regression2 para Regression3 e mandar rodar; e assim sucessivamente até Regression4
Por osvaldomp
#35778
Experimente:
Código: Selecionar todos
Sub InserePlanilhas()
 Dim i As Long
  For i = 1 To 5
   Sheets.Add after:=Sheets(Sheets.Count)
   ActiveSheet.Name = "Regression" & i
  Next i
End Sub
Avatar do usuário
Por gfranco
Avatar
#35779
Não sei se entendi direito mas veja se atende:
Código: Selecionar todos
Sub main()
    Dim i As Long
    
    For i = 1 To 5
    
        Worksheets.Add after:=ActiveSheet
        
        ActiveSheet.Name = "Regression" & i
    
    Next i

End Sub
Por diogobastos1985
#35781
Ja me ajudou bastante. Mas o meu problema é ligeiramente diferente. Vi q meu codigo nao representou muito bem a minha duvida.
Quando eu incluo o
Código: Selecionar todos
For
Ele cria dentro do codigo 5 abas de uma vez só. Eu quero criar essas abas a cada vez q eu mando rodar o codigo. Porque o codigo deve preencher em cada aba aberta.

Seria assim:

Eu rodo o codigo e ele cria a aba Regression 1 e automaticamente dentro dessa rotina ele preenche essa aba. Depois eu rodo o codigo novamente e ele cria a aba Regression2 e preenche essa aba.

O For cria 5 planilhas de uma vez só. Não é isso q eu quero.

Há como a cada CLICK no botão da Macro eu mudar automaticamente o texto Regression. Por exemplo: O primeiro CLICK estaria associado ao texto Regression1 e automaticamente criaria a aba Regression1. E assim scessivamente.
Por diogobastos1985
#35783
gfranco escreveu:Não sei se entendi direito mas veja se atende:
Código: Selecionar todos
Sub main()
    Dim i As Long
    
    For i = 1 To 5
    
        Worksheets.Add after:=ActiveSheet
        
        ActiveSheet.Name = "Regression" & i
    
    Next i

End Sub
É quase isso. O q eu quero é que a cada CLICK que eu dou na Macro ela crie UMA aba. Não as cinco direto.

estou pensando em fazer um "IF " mas nao sei se consigo.
Por osvaldomp
#35784
Válido até 9 planilhas.
Código: Selecionar todos
Sub InserePlanilhas()
 Sheets.Add after:=Sheets(Sheets.Count)
 If InStr(Sheets(Sheets.Count - 1).Name, "Regression") = 0 Then
  ActiveSheet.Name = "Regression1"
 Else: ActiveSheet.Name = "Regression" & Right(Sheets(Sheets.Count - 1).Name, 1) + 1
 End If
End Sub
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