Valeu amigo!
Eu fiz três macros em VBA:
A 1ª Eu copio os dados da Aba "ColarZSDQ" Colunas "C e L" e colo na primeira celula vazia, após a ultima linha preenchida na aba "BD_Dt_Fatura.
A 2ª Eu Formato o codigo do cliente, pois quando eu copio e colo com a macro anterior ela traz em formato texto (A macro copia uma coluna na aba "BD_Dt_farura e multiplica por *1 para ficar como numero
A 3ª Faz o calculo da ultima compra (Data do faturamento da coluna "C" da aba "Colar_ZSDQ") por cliente.
Veja abaixo:]
Sub Copiar2()
Dim LR As Integer 'retorna o número da última linha com conteúdo na coluna
LR = Sheets("BD_Dt_Fatura").Cells(Rows.Count, 1).End(xlUp).Row
Sheets("Colar_ZSDQ").Range("C2:C500").Copy Sheets("BD_Dt_Fatura").Range("A" & LR + 1)
Sheets("Colar_ZSDQ").Range("L2:L500").Copy Sheets("BD_Dt_Fatura").Range("B" & LR + 1)
End Sub
-------------------------------------------------------------------------------------------------
Sub Format_Client()
'
' Format_Client Macro
Range("C2").Select
ActiveCell.FormulaR1C1 = "=RC[-1]*1"
Range("C2").Select
Selection.Copy
Range("C3").Select
Selection.End(xlDown).Select
Range("B1048576").Select
Selection.End(xlUp).Select
Range("C20997").Select
Range(Selection, Selection.End(xlUp)).Select
Range("C3:C20997").Select
Range("C20997").Activate
ActiveSheet.Paste
Application.CutCopyMode = False
Range("D1").Select
End Sub
-------------------------------------------------------------------------------------------------
Sub Ultima_compra()
'
' Ultima_compra Macro
Range("D2").Select
Selection.FormulaArray = "=LARGE((R2C3:R40000C3=RC[-1])*(R2C1:R40000C1),1)"
Selection.Copy
Range("D3").Select
Selection.End(xlDown).Select
Range("C1048576").Select
Selection.End(xlUp).Select
Range("D20997").Select
Range(Selection, Selection.End(xlUp)).Select
Range("D3:D20997").Select
Range("D20997").Activate
ActiveSheet.Paste
Application.CutCopyMode = False
Range("E1").Select
End Sub
Você consegue me ajudar a unir essas macros e deixar uma só.
Obrigado.
Postado : 29/12/2015 12:56 pm