Notifications
Clear all

Copia de Planilhas

5 Posts
2 Usuários
0 Reactions
867 Visualizações
(@romanholi)
Posts: 177
Estimable Member
Topic starter
 

Pessoal, boa tarde!

Como eu faço um macro para copiar uma planilha pela quantidade de vezes que eu informar num inputbox?

Gostaria que funcionasse assim:

O meu arquivo sempre terá uma única planilha!
Quando eu executar, a macro chama um inputbox e eu informarei a quantidade (Ex: 30), daí o excel copia essa planilha ativa 29 vezes. Ao terminar a copia ele chama outro inputbox para renomear essas planilhas de acordo com uma sequencia Ex: 448. Daí ele vai renomear as planilha assim:

448_01
449_02
....
477_30

Tenho certeza que vocês me ajudarão!

Obrigado meus amigos!

 
Postado : 31/10/2016 1:30 pm
(@mprudencio)
Posts: 2749
Famed Member
 

Cole esse codigo em um modulo


Sub Criar()

Dim QTD As Integer
Dim WSPlan As Worksheet
Dim Nome As String
Dim Cont As Integer

QTD = InputBox("Digite a Quantidade", "Quantidade")
Cont = 1

For a = 2 To QTD

Sheets.Add After:=Sheets(Sheets.Count)

Next

Nome = InputBox("Digite o Nome", "Nome")

For Each WSPlan In Worksheets

WSPlan.Name = Nome & " " & Format(Cont, "00")

Nome = Nome + 1
Cont = Cont + 1

Next

End Sub

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 31/10/2016 3:00 pm
(@romanholi)
Posts: 177
Estimable Member
Topic starter
 

Prudencio, muito obrigado pelo retorno amigo!

É quase isso... a macro está criando novas planilhas, eu preciso que ela copie a planilha ativa!

Mas é isso mesmo.

Como eu faço para que ela copie?

Obrigado amigo

 
Postado : 01/11/2016 6:02 am
(@romanholi)
Posts: 177
Estimable Member
Topic starter
 

Tentei alterar:

Sheets.Add After:=Sheets(Sheets.Count)
Para
Sheets.Copy After:=Sheets(Sheets.Count)

Até copia, mas não copia com a quantidade que eu informo. A macro está se perdendo!

Aguardo Ajuda
Obrigado

 
Postado : 01/11/2016 6:13 am
(@mprudencio)
Posts: 2749
Famed Member
 

Troque

Sheets.Add After:=Sheets(Sheets.Count)

Por

Sheets("Plan1").Copy After:=Sheets(Sheets.Count)

Mas coloque no mesmo local

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 01/11/2016 8:18 am