Ir ao conteúdo
  • Cadastre-se

Excel Macro para Copiar e Renomear Planilha


Ir à solução Resolvido por Visitante,

Posts recomendados

Olá, Boa Tarde!!

 

Gostaria de ajuda na planilha em anexo...


Criar uma MACRO que quando eu clicar na planilha "2020" e pedir para Copiar essa planilha, ela copie uma nova planilha igual essa logo na frente da planilha "2020", só que com o ano seguinte = "2021". E assim sucessivamente.

 

A MACRO também precisa mudar a Célula A1 para o ano que vai dar nome a planilha

 

Não sei se expliquei bem.... mas caso negativo, peçam novas informações aqui que vamos informando!

2020.xlsx

Muito obrigado e abraços

 

 

2020.xlsx

Link para o comentário
Compartilhar em outros sites

13 horas atrás, osvaldomp disse:

 

Experimente:

 


Sub FazCópiaDaPlanilhaAtiva()
 ActiveSheet.Copy After:=Sheets(Sheets.Count)
 [A1] = [A1] + 1
 ActiveSheet.Name = [A1]
End Sub

 

 

@osvaldomp Obrigado pela ajuda. Mas não consegui colocar para funcionar ao clicar na planilha 2020 > Copiar ou Mover > Criar uma Cópia..... 
 

Onde devo colocar essa Sub? 

Link para o comentário
Compartilhar em outros sites

50 minutos atrás, KaKaBeCuDo disse:

 

 ... ao clicar na planilha 2020 ..

 

O que exatamente você quer dizer com "clicar na planilha" ?

 

Uma cópia do código que passei deve ser instalada em um módulo comum, assim:
1. copie o código daqui
2. a partir de qualquer planilha tecle 'Alt+F11' para acessar o editor de VBA
3. no menu do editor / Inserir / Módulo
4. cole o código na janela em branco que vai se abrir
5. feito! 'Alt+Q' para retornar para a planilha e testar

para rodar o código:
6. ative a planilha da qual deseja fazer cópia tecle 'Alt+F8' / selecione a macro correspondente / Executar, ou insira um botão na planilha e vincule-o à macro ou vincule-a a um atalho de teclado (Alt+F8 / Opções). Recomendo esta última opção.
Essas três opções para rodar o código podem ser implantadas isoladamente ou em conjunto.

 

 

Link para o comentário
Compartilhar em outros sites

 

1 minuto atrás, osvaldomp disse:

 

O que exatamente você quer dizer com "clicar na planilha" ?

 

Uma cópia do código que passei deve ser instalada em um módulo comum, assim:
1. copie o código daqui
2. a partir de qualquer planilha tecle 'Alt+F11' para acessar o editor de VBA
3. no menu do editor / Inserir / Módulo
4. cole o código na janela em branco que vai se abrir
5. feito! 'Alt+Q' para retornar para a planilha e testar

para rodar o código:
6. ative a planilha da qual deseja fazer cópia tecle 'Alt+F8' / selecione a macro correspondente / Executar, ou insira um botão na planilha e vincule-o à macro ou vincule-a a um atalho de teclado (Alt+F8 / Opções). Recomendo esta última opção.
Essas três opções para rodar o código podem ser implantadas isoladamente ou em conjunto.

 

 

@osvaldomp Desculpe, não me expressei direito.... clicar na aba

 

image.png.91808d83bdd64e58033946da3ea4edd6.png

Link para o comentário
Compartilhar em outros sites

6 minutos atrás, KaKaBeCuDo disse:

 

 ... clicar na aba  guia (nomenclatura MS)

 

 

Você testou o código ?

 

dica - para responde clique em Responder, abaixo da última postagem. Só clique em Citar se necessário.

Link para o comentário
Compartilhar em outros sites

Testei e está funcionando. Coloquei um botão e vinculei a Macro

adicionado 15 minutos depois
14 horas atrás, osvaldomp disse:

 

Experimente:

 


Sub FazCópiaDaPlanilhaAtiva()
 ActiveSheet.Copy After:=Sheets(Sheets.Count)
 [A1] = [A1] + 1
 ActiveSheet.Name = [A1]
End Sub

 

 

Só mais um detalhe.... Eu vou precisar desproteger e proteger a planilha "2020" após clonar ela. Já consegui desproteger, mas não estou conseguindo proteger... Alguma ideia?

 

Link para o comentário
Compartilhar em outros sites

30 minutos atrás, KaKaBeCuDo disse:

 Alguma ideia?

 

Nenhuma. Só palpites. 🤪

 

1. como você conseguiu desproteger? manualmente ou via código? se via código então disponibilize-o

2. você "precisa" desproteger só a planilha 2020 ? ou as cópias dela também (2021, 2022, ...) ?

3. você "precisa" desproteger por quais motivos? para inserir/editar dados? se sim, isso pode ser feito pelo código 😏

 

dica - para responde clique em Responder, abaixo da última postagem. Só clique em Citar se necessário.

Link para o comentário
Compartilhar em outros sites

1. como você conseguiu desproteger? manualmente ou via código? se via código então disponibilize-o

Via Código. Segue abaixo.

2. você "precisa" desproteger só a planilha 2020 ? ou as cópias dela também (2021, 2022, ...) ?

a 2020 e as cópias dela 2021, 2022...

3. você "precisa" desproteger por quais motivos? para inserir/editar dados? se sim, isso pode ser feito pelo código 

para alterar a célula A1 pela Macro - pois a célula é bloqueada

 

Sub FazCópiaDaPlanilhaAtiva()

 ActiveSheet.Unprotect
 ActiveSheet.Copy After:=Sheets(Sheets.Count)
 [A1] = [A1] + 1
 ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
 ActiveSheet.Name = [A1]
  
 SelectSheet = [A1]
 Range("C5:C9,C12:C16,C19:C23,C26:C30,C33:C37,C40:C44,C47:C51,C54:C58,C61:C65,C68:C72,C75:C79,C82:C86").ClearContents
 Range("E5:E9,E12:E16,E19:E23,E26:E30,E33:E37,E40:E44,E47:E51,E54:E58,E61:E65,E68:E72,E75:E79,E82:E86").ClearContents
 Range("F5:F9,F12:F16,F19:F23,F26:F30,F33:F37,F40:F44,F47:F51,F54:F58,F61:F65,F68:F72,F75:F79,F82:F86").ClearContents
 Range("G5:G9,G12:G16,G19:G23,G26:G30,G33:G37,G40:G44,G47:G51,G54:G58,G61:G65,G68:G72,G75:G79,G82:G86").ClearContents
 Range("H5:H9,H12:H16,H19:H23,H26:H30,H33:H37,H40:H44,H47:H51,H54:H58,H61:H65,H68:H72,H75:H79,H82:H86").ClearContents
 Range("K5:K9,K12:K16,K19:K23,K26:K30,K33:K37,K40:K44,K47:K51,K54:K58,K61:K65,K68:K72,K75:K79,K82:K86").ClearContents
 Range("L5:L9,L12:L16,L19:L23,L26:L30,L33:L37,L40:L44,L47:L51,L54:L58,L61:L65,L68:L72,L75:L79,L82:L86").ClearContents
 Range("R4,R11,R18,R25,R32,R39,R46,R60,R67,R74,R81").ClearContents
   
End Sub

Link para o comentário
Compartilhar em outros sites

 Sub FazCópiaDaPlanilhaAtiva()
  ActiveSheet.Copy After:=Sheets(Sheets.Count)
  ActiveSheet.Unprotect
  [A1] = [A1] + 1
  ActiveSheet.Name = [A1]
 
 Range("C5:C9,C12:C16,C19:C23,C26:C30,C33:C37,C40:C44,C47:C51,C54:C58,C61:C65,C68:C72,C75:C79,C82:C86").ClearContents
 Range("E5:E9,E12:E16,E19:E23,E26:E30,E33:E37,E40:E44,E47:E51,E54:E58,E61:E65,E68:E72,E75:E79,E82:E86").ClearContents
 Range("F5:F9,F12:F16,F19:F23,F26:F30,F33:F37,F40:F44,F47:F51,F54:F58,F61:F65,F68:F72,F75:F79,F82:F86").ClearContents
 Range("G5:G9,G12:G16,G19:G23,G26:G30,G33:G37,G40:G44,G47:G51,G54:G58,G61:G65,G68:G72,G75:G79,G82:G86").ClearContents
 Range("H5:H9,H12:H16,H19:H23,H26:H30,H33:H37,H40:H44,H47:H51,H54:H58,H61:H65,H68:H72,H75:H79,H82:H86").ClearContents
 Range("K5:K9,K12:K16,K19:K23,K26:K30,K33:K37,K40:K44,K47:K51,K54:K58,K61:K65,K68:K72,K75:K79,K82:K86").ClearContents
 Range("L5:L9,L12:L16,L19:L23,L26:L30,L33:L37,L40:L44,L47:L51,L54:L58,L61:L65,L68:L72,L75:L79,L82:L86").ClearContents
 Range("R4,R11,R18,R25,R32,R39,R46,R60,R67,R74,R81").ClearContents
   
 ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub

dica - no seu código as 4 linhas abaixo.

 Range("E5:E9,E12:E16,...
 Range("F5:F9,F12:F16,...
 Range("G5:G9,G12:G16,...
 Range("H5:H9,H12:H16,...

 

podem ser substituídas por esta

Range("E5:H9,E12:H16,...

Link para o comentário
Compartilhar em outros sites

2 horas atrás, KaKaBeCuDo disse:

 ... só faltou agora proteger a planilha atual através da Macro.

 

Se por "planilha atual" (existe alguma que não seja atual ?) você se refere à planilha 2020, então proteja manualmente e ela permanecerá protegida até alguém desprotegê-la, pois o código não altera o seu estado, ele só faz uma cópia. Ainda, no post #7 você comentou que ela está protegida :tw_confused:

Link para o comentário
Compartilhar em outros sites

Pois é, mas isso não acontece. Mesmo eu protegendo ela manualmente (a ATUAL 2020), quando crio a 2021, a planilha 2020 fica desprotegida pela Macro

 

adicionado 5 minutos depois

Só para explicar melhor. Se crio a 2021, daí na 2021 vai ter o botão vinculado à Macro. Se Clico no botão na planilha 2021, cria-se a 2022. porém a 2021 volta a ficar desprotegida....

Link para o comentário
Compartilhar em outros sites

Isso está acontecendo porque provavelmente você não está utilizando o código que coloquei no post #10, ou então o meu Excel está com defeito de fabricação, pois aqui o código não desprotege a planilha copiada. 🤪

 

 

Link para o comentário
Compartilhar em outros sites

pior que a fórmula está assim conforme abaixo... se eu não estiver muito doido, está igual sua sugestão:

 

Sub FazCópiaDaPlanilhaAtiva()

 Application.ScreenUpdating = False
 ActiveSheet.Unprotect
 ActiveSheet.Copy After:=Sheets(Sheets.Count)
 [A1] = [A1] + 1

 ActiveSheet.Name = [A1]
  
 SelectSheet = [A1]
 Range("C5:C9,C12:C16,C19:C23,C26:C30,C33:C37,C40:C44,C47:C51,C54:C58,C61:C65,C68:C72,C75:C79,C82:C86").ClearContents
 Range("E5:H9,E12:H16,E19:H23,E26:H30,E33:H37,E40:H44,E47:H51,E54:H58,E61:H65,E68:H72,E75:H79,E82:H86").ClearContents
 Range("K5:L9,K12:L16,K19:L23,K26:L30,K33:L37,K40:L44,K47:L51,K54:L58,K61:L65,K68:L72,K75:L79,K82:L86").ClearContents
 Range("R4,R11,R18,R25,R32,R39,R46,R60,R67,R74,R81").ClearContents
   
 ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
 
End Sub

Link para o comentário
Compartilhar em outros sites

  • Solução
8 horas atrás, KaKaBeCuDo disse:

 ... se eu não estiver muito doido, ...

hummm ... se cuide :tw_tounge_wink:
 

 

 

Pintei as linhas para facilitar o seu entendimento. Em macros a ordem dos comandos é fundamental.

 

no post #10 está assim:

ActiveSheet.Copy After:=Sheets(Sheets.Count) ~~~> faz cópia da planilha 2020 (gera a planilha 2021)

ActiveSheet.Unprotect ~~~> desprotege a planilha 2021

 

 

no post #15 você colocou assim:

 ActiveSheet.Unprotect ~~~> desprotege a planilha 2020
 ActiveSheet.Copy After:=Sheets(Sheets.Count) ~~~> faz cópia da planilha 2020 (gera a planilha 2021)

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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 comunidades 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

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!