Imagine que tenha diversas planilhas, arquivos texto e acesso a algumas views e queries cujos conteúdos precisem regularmente ser usados em um único Dashboard, Book, ou Relatório onde todas as informações são reunidas e apresentadas.
Essa situação lhe parece familiar?
Agora imagine que dentre estes, 15 ou 20 sejam planilhas distintas, das quais precise abrir, copiar e colar os conteúdos, trazendo tudo para uma única planilha, que precisará ser formatada e distribuida.
E se pudesse apenas abrir e copiar as abas que importam, em todas as 20 planilhas, exportando-as para uma única planilha?
Pois bem, isso é possível e acessível. Segue:
Function ExportSheetOutWorkBook(PathName As String, FileName As String, TabTarget As String, TabSource As String)
' THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT
' LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
' Feel free to use the code as you wish but kindly keep this header section intact.
' Copyright© A&A - In Any Place®, all Rights Reserved.
' Author: André Bernardes
' Contact: andreluizbernardess@gmail.com | https://goo.gl/EUMbSe/
' Description: Exporta a Sheet informada para uma planilha externa.
Dim ControlFile As String
'Call SetMess(True, "Início da movimentação da aba " & TabSource)
Let ControlFile = ActiveWorkbook.Name
' Abre o nome do arquivo.
Workbooks.Open FileName:=PathName & FileName
Call SetMess(True, "Início da movimentação da aba (" & TabSource & ") para planilha externa (" & PathName & FileName & ").")
' Vai para a aba Source.
Windows(ControlFile).Activate
Sheets(TabSource).Select
' Copia os dados.
Sheets(TabSource).Copy After:=Workbooks(FileName).Sheets(1)
'Call SetMess(True, "Colando dados na planilha externa (" & TabTarget & ") da planilha atual.")
' Ative a planilha Target.
Windows(FileName).Activate
ActiveWorkbook.Close SaveChanges:=True
Call SetMess(True, "Salvando na planilha.")
Windows(ControlFile).Activate
Sheets("Automation").Select
'Call SetMess(True, "Término da movimentação da aba " & TabTarget)
End Function
Copiar uma planilha específica na pasta ativa
Sub Copier1()
'Replace "Sheet1" with the name of the sheet to be copied.
ActiveWorkbook.Sheets("Sheet1").Copy _
after:=ActiveWorkbook.Sheets("Sheet1")
End Sub
Copiar uma planilha específica na pasta ativa várias vezes
Sub Copier2()
Dim x As Integer
x = InputBox("Enter number of times to copy Sheet1")
For numtimes = 1 To x
'Loop by using x as the index number to make x number copies.
'Replace "Sheet1" with the name of the sheet to be copied.
ActiveWorkbook.Sheets("Sheet1").Copy _
After:=ActiveWorkbook.Sheets("Sheet1")
Next
End Sub
Copia a Planilha ativa várias vezes
Sub Copier3()
Dim x As Integer
x = InputBox("Enter number of times to copy active sheet")
For numtimes = 1 To x
'Loop by using x as the index number to make x number copies.
ActiveWorkbook.ActiveSheet.Copy _
Before:=ActiveWorkbook.Sheets("Sheet1")
'Put copies in front of Sheet1.
'Replace "Sheet1" with sheet name that you want.
Next
End Sub
Copiar todas as planilhas em uma pasta de trabalho uma vez
Sub Copier4()
Dim x As Integer
For x = 1 To ActiveWorkbook.Sheets.Count
'Loop through each of the sheets in the workbook
'by using x as the sheet index number.
ActiveWorkbook.Sheets(x).Copy _
After:=ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count)
'Puts all copies after the last existing sheet.
Next
End Sub
Código de exemplo para mover planilhas
Mover a planilha ativa para uma nova posição na pasta de trabalho
Sub Mover1()
ActiveSheet.Move _
After:=ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count)
'Moves active sheet to end of active workbook.
End Sub
Mover a planilha ativa para outra pasta de trabalho
Sub Mover2()
ActiveSheet.Move Before:=Workbooks("Test.xls").Sheets(1)
'Moves active sheet to beginning of named workbook.
'Replace Test.xls with the full name of the target workbook you want.
End Sub
Mover Várias Planilhas da Pasta Ativa para Outra Pasta de Trabalho
Sub Mover3()
Dim BkName As String
Dim NumSht As Integer
Dim BegSht As Integer
'Starts with second sheet - replace with index number of starting sheet.
BegSht = 2
'Moves two sheets - replace with number of sheets to move.
NumSht = 2
BkName = ActiveWorkbook.Name
For x = 1 To NumSht
'Moves second sheet in source to front of designated workbook.
Workbooks(BkName).Sheets(BegSht).Move _
Before:=Workbooks("Test.xls").Sheets(1)
'In each loop, the next sheet in line becomes indexed as number 2.
'Replace Test.xls with the full name of the target workbook you want.
Next
End Sub
⬛◼◾▪ CONTATO ▪◾◼⬛