Bom dia Hugo!
Primeiramente peço desculpas pela demora, mas estava sem acesso ao pc estes dias.
Fiz um teste com a macro que vc passou e ela funcionou perfeitamente, consome pouco processamento. É ótima! Muito obrigada mesmo!
Agora só falta encontrar uma maneira de exportar os dados da Plan2 que não estiverem na Plan1 para a própria Plan1.
Tentando encontrar um maneira paleativa, eu fiz do seguinte modo:
Sub ImportAtualiza()
Texto = "Esta ação não pode ser desfeita! Deseja Continuar? "
Título = "Confirmação"
CxDialog = MsgBox(Texto, vbYesNo + vbQuestion, Título)
If CxDialog = vbYes Then
Sheets("Base Atual").Select
Range("a5:p10000").Select
Selection.Copy
Sheets("Base Anterior").Select
Range("a5").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("$a$5:$p$10000").Select
With Selection
.Interior.ColorIndex = 2
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
End With
ActiveSheet.Range("$a$5:$p$10000").RemoveDuplicates Columns:=1, Header:=xlNo
Dim ultimalinhaws1, ultimalinhaws2 As Integer
Dim pasta1, pasta2 As Worksheet
Sheets(1).Select
Set pasta1 = Application.Worksheets(1)
ultimalinhaws1 = Cells(Rows.Count, 1).End(xlUp).Row
Sheets(2).Select
Set pasta2 = Application.Worksheets(2)
ultimalinhaws2 = Cells(Rows.Count, 1).End(xlUp).Row
pasta2.Select
Range("A4").Select
For i = 1 To ultimalinhaws2
For j = 1 To ultimalinhaws1
If pasta2.Cells(i, 1).Value = pasta1.Cells(j, 1).Value Then
pasta1.Cells(j, 2).Value = pasta2.Cells(i, 2).Value
pasta1.Cells(j, 3).Value = pasta2.Cells(i, 3).Value
pasta1.Cells(j, 4).Value = pasta2.Cells(i, 4).Value
pasta1.Cells(j, 5).Value = pasta2.Cells(i, 5).Value
pasta1.Cells(j, 6).Value = pasta2.Cells(i, 6).Value
pasta1.Cells(j, 7).Value = pasta2.Cells(i, 7).Value
pasta1.Cells(j, 8).Value = pasta2.Cells(i, 8).Value
pasta1.Cells(j, 9).Value = pasta2.Cells(i, 9).Value
pasta1.Cells(j, 10).Value = pasta2.Cells(i, 10).Value
pasta1.Cells(j, 11).Value = pasta2.Cells(i, 11).Value
pasta1.Cells(j, 12).Value = pasta2.Cells(i, 12).Value
pasta1.Cells(j, 13).Value = pasta2.Cells(i, 13).Value
pasta1.Cells(j, 14).Value = pasta2.Cells(i, 14).Value
pasta1.Cells(j, 15).Value = pasta2.Cells(i, 15).Value
pasta1.Cells(j, 16).Value = pasta2.Cells(i, 16).Value
End If
Next j
Next i
End If
MsgBox " Dados Importados com Sucesso!!"
Range("A1").Select
End Sub
Apesar de funcionar em uma planilha pequena, não funciona direito na planilha com muitos dados. Depois de executada, o excel fica carregando a planilha infinitamente, como se a macro nunca terminasse.
Alguém ai possui alguma sugestão?
Muito obrigada pela atenção.
Postado : 20/04/2013 1:30 pm