Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
  • Avatar do usuário
#45164
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
Você não está autorizado a ver ou baixar esse anexo.
#45168
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
Você não está autorizado a ver ou baixar esse anexo.
#45169
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
#45176
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
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord