Página 1 de 1

Macro que informa a data da última compra

Enviado: 22 Jun 2019 às 18:40
por LeoHenrique
Tudo bem colegas !

Se alguém puder me ajudar, agradeço imensamente, é o seguinte ...

Na planilha em anexo, preciso de uma macro que informe na coluna "F" a data da última compra, e quantidade "coluna "G", da informação que está na aba "Faturados", coluna "L e S" respectivamente, Nota fiscal e quantidade, para as referências que estão na coluna "B".
Obs: A aba Faturados têm mais de 40.000 linhas, cortei para o arquivo ficar menor.
É possível ? Desde já agradeço a ajuda !

Leandro Henrique

Re: Macro que informa a data da última compra

Enviado: 22 Jun 2019 às 23:42
por osvaldomp
Experimente:
Código: Selecionar todos
Sub ReplicaDados()
 Dim r As Range, fr As Range
  For Each r In Range("B7:B" & Cells(Rows.Count, 2).End(3).Row)
   Set fr = Sheets("Faturados").[G:G].Find(r.Value)
   If Not fr Is Nothing Then
    r.Offset(, 4).Value = Right(fr.Offset(, 5).Value, 8)
    r.Offset(, 5).Value = fr.Offset(, 12).Value
   End If
  Next r
End Sub

Re: Macro que informa a data da última compra

Enviado: 23 Jun 2019 às 09:32
por LeoHenrique
Bom dia a todos ,

Muito obrigado Osvaldo, novamente em outro tópico !
No código que enviou, tá funcionando sim, porém apenas não pega a data mais recente. Na coluna da direita da data, criei uma fórmula para deixar somente a data =DIREITA(L2;8), se ajudar.

Ah, se não for pedir muito, se puder deixar em comentário o que cada linha faz, agradeço, pois estou aprendendo e você está nos ajudando muito !
Segue a planilha em anexo com o código e a inclusão da fórmula que fiz.

Obrigado,

Leandro Henrique - leandro.manhani@gmail.com

Re: Macro que informa a data da última compra

Enviado: 23 Jun 2019 às 13:23
por osvaldomp
Olá, Leandro.
LeoHenrique escreveu: ... porém apenas não pega a data mais recente.
Peço desculpas, falha minha, pois na sua descrição e no título do tópico está claro que deveria ser a data mais recente. :oops:
Experimente o código abaixo no lugar do anterior.

Na coluna da direita da data, criei uma fórmula para deixar somente a data =DIREITA(L2;8), se ajudar.
Ajudou sim, fiz o novo código com base nos resultados das suas fórmulas na coluna M.
Mas para que o código abaixo consiga identificar os resultados das fórmulas como data real é preciso que você acrescente a parte em vermelho pois a função DIREITA() retorna texto ~~~>
=DIREITA(L2;8)*1
Código: Selecionar todos
Sub ReplicaDadosV2()
 Dim r As Range, LR As Long
  LR = Sheets("Faturados").Cells(Rows.Count, 1).End(3).Row
  For Each r In Range("B7:B" & Cells(Rows.Count, 2).End(3).Row)
   r.Offset(, 4).Value = Evaluate("=MAX(IF(Faturados!G2:G" & LR & "=" & r.Address & ",Faturados!M2:M" & LR & "))")
   r.Offset(, 5).Value = Evaluate("=INDEX(Faturados!S2:S" & LR & ",MATCH(1,(" & r.Address & "=Faturados!G2:G" & LR & ")*(MAX(IF(Faturados!G2:G" & LR & "=" & r.Address & ",Faturados!M2:M" & LR & "))=Faturados!M2:M" & LR & "),0))")
  Next r
End Sub

Re: Macro que informa a data da última compra

Enviado: 23 Jun 2019 às 20:19
por LeoHenrique
Muito obrigado novamente Osvaldomp !

Agradeço imensamente sua ajuda, deu tudo certinho mesmo ! Sua ajuda está sendo muito útil, acredito que para todos que ajudou !
Se não for pedir muito, se puder apenas descrever \\ em comentário, as o que cada linha e ou código faz, vai me ajudar muito a entender mais.

leandro.manhani@gmail.com

Abraço e obrigado novamente !

Leandro H. Manhani Moreira