Página 1 de 1

Macro informa data última compra (se não achar ficar branco)

Enviado: 28 Jun 2019 às 19:47
por LeoHenrique
Boa noite a todos !!
O código abaixo, informado pelo nosso colega do grupo "Osvaldomp" está perfeito, só precisando de um pequeno ajuste que não consegui.
É o seguinte, a macro faz a função quase de um "Procv", onde informa a data da última compra de uma referência de calçados buscando de outra aba, porém caso não localiza nenhuma, a célula fique em branco, no código está trazendo a data "00/01/1900".

Segue em anexo a planilha com o código também.
Obrigado quem puder ajudar.

Leandro Henrique




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 informa data última compra (se não achar ficar bra

Enviado: 28 Jun 2019 às 21:24
por Jimmy
Olá Leo,

Não entrei no mérito do que está sendo feito, porque a discussão desse enredo deve ter ocorrido no tópico que gerou a macro, e você não colocou o link dele para entendermos o histórico. Não se preocupe porque não foi necessário para resolver pontualmente este seu problema.

Aproveitei e alterei o modo de ter sempre as linhas 3:6 no topo da tela. Você estava dividindo a tela, e eu não sei se há algum motivo especial para não usar o congelamento de painéis. Fiz dessa segunda forma para você avaliar. A vantagem é que quando sobe ao topo da planilha, as linhas 3:6 não ficam repetidas.

Veja se te atende.

Jimmy San Juan

Re: Macro informa data última compra (se não achar ficar bra

Enviado: 28 Jun 2019 às 22:15
por osvaldomp
Acrescente as duas linhas em vermelho conforme abaixo.

For Each r In Range("B7:B" & Cells(Rows.Count, 2).End(3).Row)
If Application.CountIf(Sheets("Faturados").[G:G], r.Value) > 0 Then
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))")
End If
Next r

Re: Macro informa data última compra (se não achar ficar bra

Enviado: 29 Jun 2019 às 10:11
por LeoHenrique
Bom dia a todos !

Muito obrigado Jimmy e Osvaldo !! Os dois códigos funcionaram perfeitamente.

Vou deixar o tópico aberto uns dias apenas para "se possível" um de vocês comentarem o que cada linha faz !
Estou fazendo Análise de Sistemas e comprei o curso de VBA excel pela Udemy, estou aprendendo muito, se puderem comentar ficarei agradecido.

Obrigado novamente e ótimo final de semana a todos.

Leandro Henrique