Ir ao conteúdo
  • Cadastre-se
Diogo Bastos

Excel VBA - Criando abas automaticamente

Recommended Posts

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:

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 Regression1e mandar rodar. e assim por diante até a aba Regression5

Bom, uma solucao q eu tentei foi essa:

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: "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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Experimente assim!!!

 

Sub codigo()

cntsheets = Application.Sheets.Count

For i = 1 To 5
Set NewSheet = Application.Worksheets.Add(after:=Worksheets(cntsheets))
NewSheet.Name = "Regression" & i

Next

End Sub

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@CasaDoHardware

 

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

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.

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dependendo do que você pretende fazer da pra fazer tudo em um unico codigo.


Incluisve dependendo do preenchimento é so você inserir seu codigo antes do next.

 

 

Sub codigo()

cntsheets = Application.Sheets.Count

For i = 1 To 5
Set NewSheet = Application.Worksheets.Add(after:=Worksheets(cntsheets))
NewSheet.Name = "Regression" & i

 

 

'Seu codigo para copiar entra aqui.

'Se for uma macro que ja esta pronta é so chamar o codigo aqui

 

'CALL Suamacro

 

Next

End Sub

 

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×