- 19 Set 2018 às 08:50
#36892
Olá Pessoal,
Estou criando um VBA onde eu tenho em um diretório 30 arquivos de Excel onde nele tem uma Plan chamada tabela de Dados, preciso compilar essa tabela de dados dos 30 arquivos em um só, como uma lista de dados um abaixo do outro.
Fiz o codigo abaixo e funcionou para 1 arquivo, mas apartir do segundo não estou conseguindo identificar uma forma de minimizar o código para que ele faça a leitura dos arquivos e copie.
Fico agradecido se puderem avaliar e me ajudar.
Sub copiar()
Dim wsOrigem As Worksheet
Dim wsDestino As Worksheet
Workbooks.Open Filename:="\Documents\Teste\1.xlsm"
Sheets("Tabela Dados ").Visible = True
Sheets("Tabela Dados ").Activate
Range("b5:bk16").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Set wsOrigem = Workbooks("1.xlsm").Worksheets("Tabela Dados ")
Set wsDestino = ThisWorkbook.Sheets("Planilha1")
With wsOrigem
Range("b5:bk16").Copy Destination:=wsDestino.Range("A2:CU100000")
End With
wsDestino.Activate
wsDestino.Range("A1048576").End(xlUp).Offset(1, 0).Select
Workbooks("1.xlsm").Close SaveChanges:=False
End Sub
Estou criando um VBA onde eu tenho em um diretório 30 arquivos de Excel onde nele tem uma Plan chamada tabela de Dados, preciso compilar essa tabela de dados dos 30 arquivos em um só, como uma lista de dados um abaixo do outro.
Fiz o codigo abaixo e funcionou para 1 arquivo, mas apartir do segundo não estou conseguindo identificar uma forma de minimizar o código para que ele faça a leitura dos arquivos e copie.
Fico agradecido se puderem avaliar e me ajudar.
Sub copiar()
Dim wsOrigem As Worksheet
Dim wsDestino As Worksheet
Workbooks.Open Filename:="\Documents\Teste\1.xlsm"
Sheets("Tabela Dados ").Visible = True
Sheets("Tabela Dados ").Activate
Range("b5:bk16").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Set wsOrigem = Workbooks("1.xlsm").Worksheets("Tabela Dados ")
Set wsDestino = ThisWorkbook.Sheets("Planilha1")
With wsOrigem
Range("b5:bk16").Copy Destination:=wsDestino.Range("A2:CU100000")
End With
wsDestino.Activate
wsDestino.Range("A1048576").End(xlUp).Offset(1, 0).Select
Workbooks("1.xlsm").Close SaveChanges:=False
End Sub