Notifications
Clear all

Macro para formula matricial={MAIOR(($B$2:$B$40000=B20940)}

17 Posts
3 Usuários
0 Reactions
2,182 Visualizações
(@tutoelizeu)
Posts: 0
New Member
Topic starter
 

Bom dia meu amigos!

Estou trabalhando num Projeto de vendas e gostaria de pedir uma grande ajuda de vocês.
Se por gentileza vocês puderem me ajudar, com certeza vou fazer o possível para retribuir com o pouco que sei.
Eu tenho uma planilha que mostra na aba "Colar_ZSDQ" as minhas vendas (Nessa aba vou exportar do SAP novos dados diariamente) e na aba "BD_Dt_Fatura" o meu banco de dados com as datas de faturamento e codigo dos clientes (EmissorOrd)
Preciso de uma macro que copie todas as datas da coluna C "data do faturamento" e da coluna L "EmissorOrd" e cole sempre na primeira linha vazia, logo abaixo da ultima linha preenchida nas colunas "A" e "B" da aba "BD_Dt_Fatura"
está macro deve trazer os dados do codigo do cliente que é o EmissorOrd da coluna "L" da aba "Colar_ZSDQ" para a outra aba em numero, pois a macro que eu tenho esta trazendo como texto.
Após a macro deve fazer a leitura da relação dos clientes (EmissorOrd) que estiverem na coluna B da aba "BD_Dt_Fatura e relacionar na coluna ao lado na mesma aba sempre a última data de compras (A maior data do Faturamento), independente de quando este cliente foi faturado.
Fiz uma formula matricial em excel, mas ela é muito pesada e gosaria de saber se é possível fazer esta forma em VBA.
Depois disso eu vou para a aba "Colar_ZSDQ" e faço mais três formulas nas colunas "AI, AJ e AQ" onde há um Procv, uma subtração e uma formula SE.
Tudo isso pra eu saber se o seguinte: =SE(AJ2<=1;"Cliente novo";SE(AJ2>=150;"Cliente reativado";"Cliente ativo"))
Existe alguma possibilidade de vocês me ajudar? ou é muita coisa?

Desde já agradeço pela atenção.

Muito obrigado.

 
Postado : 29/12/2015 9:59 am
(@tutoelizeu)
Posts: 0
New Member
Topic starter
 

Obrigado Edcronos2!

Você já me ajudou muito com suas dicas e questionamentos,
Eu consegui com a sua ajuda fazer uma macro que esta me atendendo, só vou precisar pesquisar e fazer mais alguns ajustes, mas já está muito bom!

Peço desculpas por não conseguir me expressar da maneira simples que você me pediu, mas tentei detalhar o meu projeto.
A macro que estou usando é essa:

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)

MyStr = Format(1) = Range("B" & LR + 1) * "1"

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("C25000").Select
Range(Selection, Selection.End(xlUp)).Select
Range("C3:C25000").Select
Range("C25000").Activate
ActiveSheet.Paste
Application.CutCopyMode = False
Range("D1").Select

Range("D2").Select
Selection.FormulaArray = "=LARGE((R2C3:R25000C3=RC[-1])*(R2C1:R25000C1),3)"
Selection.Copy
Range("D3").Select
Selection.End(xlDown).Select
Range("C1048576").Select
Selection.End(xlUp).Select
Range("D25000").Select
Range(Selection, Selection.End(xlUp)).Select
Range("D3:D25000").Select
Range("D25000").Activate
ActiveSheet.Paste
Application.CutCopyMode = False
Range("E1").Select

End Sub

A unica coisa que eu preciso para terminar o Projeto e ficar 100% é conseguir que o comando "Range("C3:C25000")" e Range("D25000").Select na macro pegue o mesmo numero de linhas da da primeira parte da macro = Range("A" & LR + 1) e Range("B" & LR + 1)

Desejo a você e toda a sua equipe um feliz 2016 e muito sucesso pra vocês!

 
Postado : 31/12/2015 4:40 pm
(@tutoelizeu)
Posts: 0
New Member
Topic starter
 

Só mais uma coisinha...

A primeira parte da macro copia os códigos do EmissorOrd (Cliente), da aba ZSDQ e cola na Aba BD
O problema é que está colando como texto e eu preciso que cole como numero

Só preciso de ajuda nisso, se você puder é claro e então posso marcar como resolvido.

Abçs.

 
Postado : 31/12/2015 4:49 pm
Página 2 / 2