Notifications
Clear all

Criar cópias de Abas com nomes+datadiadehoje (Macro)

6 Posts
2 Usuários
0 Reactions
802 Visualizações
(@jdutra6)
Posts: 20
Eminent Member
Topic starter
 

Prezados, bom dia.

Gostaria de saber se é possível alguém me ajudar na criação de uma macro. Eu tenho uma planilha com 6 abas que precisam ser salvas, no caso, eu preciso criar um novo arquivo para cada pasta, preciso que esses arquivos tenham o mesmo nome da Aba mais o dia atual, separados por "." . Alguém pode me ajudar, sou muito fraco de excel, mas com certeza isso me pouparia um bom tempo. Nas minha aventuras eu tentei algo assim:

Sub SalvandoBasesEmplacamentos()
'
' SalvandoBasesEmplacamentos Macro
'
' Keyboard Shortcut: Ctrl+Shift+O
'
    Sheets("SANCAR").Select
    Sheets("SANCAR").Copy
    ChDir "C:Usersjdutra6DesktopPendencia de Emplacamento"
    ActiveWorkbook.SaveAs Filename:= _
        "C:Usersjdutra6DesktopPendencia de EmplacamentoSANCAR & Date() .xlsx ", FileFormat
        :=xlOpenXMLWorkbook, CreateBackup:=False
        

End Sub

Mas além de isso ser um teste para apenas uma aba, eu não consigo concatenar o nome da aba com a data atual, para formar o nome do arquivo.

Agradeço desde já.

:?: :?: :?: :?: :?: :?: :?: :?: :?: :?: :?: :?: :?: :?: :?: :?: :?: :?: :?: :?: :?: :?: :?: :?: :?: :?: :?: :?: :?: :?: :?: :?: :?: :?: :?: :?: :?:
Att.

 
Postado : 05/05/2016 8:16 am
(@osvaldomp)
Posts: 858
Prominent Member
 

Olá.
Experimente:

Sub SalvandoBasesEmplacamentosV2()
' SalvandoBasesEmplacamentos Macro
' Keyboard Shortcut: Ctrl+Shift+O
 Dim ws As Worksheet
  For Each ws In Worksheets
   ws.Copy
   ChDir "C:Usersjdutra6DesktopPendencia de Emplacamento"
   ActiveWorkbook.SaveAs Filename:= _
    "C:Usersjdutra6DesktopPendencia de Emplacamento" & ws.Name & Format(Date, " ddmmmyyyy") & ".xlsx ", FileFormat _
     :=xlOpenXMLWorkbook, CreateBackup:=False
  Next ws
End Sub

Osvaldo

 
Postado : 05/05/2016 8:39 am
(@jdutra6)
Posts: 20
Eminent Member
Topic starter
 

Osvaldo, já foi um grande progresso, agora, eu mencionei uma coisa errada, disse que só tinha 6 abas, na verdade tem mais, no entanto eu só queria que abs específicas fizessem parte da macro entende, imagine: Sheet1,Sheet2,Sheet3. No entanto eu só quero que a macro atue na sheet2 e sheet3 entende?
Será que é possível fazer isto. Mas muiiiiiito obrigado, a macro funcionou sim, se for possível aprimorar de acordo com o que eu disse ficaria perfeita.

Obrigado mesmo.

 
Postado : 05/05/2016 8:48 am
(@jdutra6)
Posts: 20
Eminent Member
Topic starter
 

Se bem que também não dá muito trabalho selecionar todas e criar uma nova pasta. Obrigado Osvaldo.

 
Postado : 05/05/2016 9:03 am
(@osvaldomp)
Posts: 858
Prominent Member
 

Olá, Dutra.
O código abaixo faz cópias somente das planilhas "Sheet2" e "Sheet3".

Sub SalvandoBasesEmplacamentos()
' SalvandoBasesEmplacamentos Macro
' Keyboard Shortcut: Ctrl+Shift+O
 Dim ws As Worksheet
  For Each ws In Worksheets
   If ws.Name = "Sheet2" Or ws.Name = "Sheet3" Then
    ws.Copy
    ChDir "C:Usersjdutra6DesktopPendencia de Emplacamento"
    ActiveWorkbook.SaveAs Filename:= _
     "C:Usersjdutra6DesktopPendencia de Emplacamento" & ws.Name & Format(Date, " ddmmmyyyy") & ".xlsx ", FileFormat _
     :=xlOpenXMLWorkbook, CreateBackup:=False
   End If
  Next ws
End Sub

Osvaldo

 
Postado : 05/05/2016 9:47 am
(@jdutra6)
Posts: 20
Eminent Member
Topic starter
 

Osvaldo, muito obrigado, depois de umas adequações eu apliquei a planilha, ficou show de bola, trabalho reduzido em 70%. Você é FERA! :D :D :D :D :D :D

 
Postado : 05/05/2016 10:46 am