Boa tarde
Gostaria de implementar uma rotina em vba, em que ele abre diversos arquivos(arquivo1, arquivo2) e recorta para uma única base de dados(Geral) e salva posteriormente.
Tentei implementar essa rotina, no entanto, apesar de usar o "cut", ele apenas copia e cola os dados.
Inverti os comandos de diversas maneiras, mas não obtive sucesso, se alguém puder ajudar, segue o código abaixo :
Sub Compilar()
With Application
.ScreenUpdating = False
.DisplayAlerts = False
End With
'Copiar dados de um Livro para outro
Dim wsOrigem As Worksheet
Dim wsDestino1 As Worksheet
Dim wsDestino2 As Worksheet
'Arquivo Destino, abrimos primeiro
Workbooks.Open Filename:="\\arqsv0\sg\Melhoria\Evidencias\DADOS\arquivo1.xlsx"
Set wsDestino1 = Workbooks("arquivo1.xlsx").Worksheets("Plan1")
Set wsOrigem = Workbooks("Geral.xlsb").Worksheets("Plan1")
With wsDestino
Range("A3").Select
Range(Selection, Selection.End(xlToRight)).Select
Range("A3:L3").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Cut
End With
Workbooks("arquivo1.xlsx").Close SaveChanges:=True
With wsOrigem
Range("A2").Select
Selection.End(xlDown).Select ' crtl + baixo
ActiveCell.Offset(1, 0).Select ' seleciona a próxima linha
Workbooks("Geral.xlsb").Worksheets("Plan1").Paste
End With
' abre segundo arquivo
Workbooks.Open Filename:="\\arqsv0\sg\Melhoria\Evidencias\DADOS\arquivo2.xlsx"
Set wsDestino2 = Workbooks("arquivo2.xlsx").Worksheets("Plan1")
With wsDestino2
Range("A3").Select
Range(Selection, Selection.End(xlToRight)).Select
Range("A3:L3").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Cut
End With
Workbooks("arquivo2.xlsx").Close SaveChanges:=True
With wsOrigem
Range("A2").Select
Selection.End(xlDown).Select ' crtl + baixo
ActiveCell.Offset(1, 0).Select ' seleciona a próxima linha
End With
Workbooks("Geral.xlsb").Worksheets("Plan1").Paste
'Fecha o Arquivo Destino e Salva
MsgBox "Dados salvos com sucesso !"