Página 1 de 1

AUTOMATIZAR PROCV - IF/LOOP ?

Enviado: 28 Dez 2021 às 16:27
por marialaurachs
Pessoal, bom dia. 

Tenho uma planilha com várias colunas, cada um se refere a um dado, que precisa ser atualizada diariamente com dados de uma base.

Não ocupo todos os dados dessa base, portanto o copia e cola não se cabe aqui, tem que ser procv. 

O PROCV na macro até consegui fazer, o problema é a questão da data. A cada dia, esses dados deverão ser colados na linha de baixo, e para isso, eu precisaria atualizar a macro mensalmente, por exemplo, com a referência da célula em que o dado deve ser colocado. 

Me informaram que é possível que isso seja feito automaticamente, sem que eu precise estar atualizando o local da célula a ser colocada a informação, com o "for" e "loop".

Alguem sabe me informar como fazer isso?

Sub vbaProcv()
    Dim data As Integer
    Dim resultado_procv As Variant
    Dim resultado_procv2 As Variant
    Dim resultado_procv3 As Variant

    data = Sheets("Base").Range("A366").Value
    resultado_procv = Application.VLookup(data, Sheets("Planilha1").Range("B3:CQ24"), 82, False)
    resultado_procv2 = Application.VLookup(data, Sheets("Planilha1").Range("B3:CQ24"), 87, False)
    resultado_procv3 = Application.VLookup(data, Sheets("Planilha1").Range("B3:CQ24"), 7, False)
    Sheets("Base").Range("H366").Value = resultado_procv
    Sheets("Base").Range("J366").Value = resultado_procv2
    Sheets("Base").Range("K366").Value = resultado_procv3

End Sub

o código atual é esse, cada resultavo_procv é um tipo de informação (na verdade são 15 colunas, inseri apenas 3). Eu busco pela data na outra planilha, e o que eu quero evitar é precisar fazer diversos códigos para cada dia. (para cada seriam 15 procv , no dia 1 seriam colocados nas celulas H366, J366, K366, etc.. para o dia 2 teria que inserir na H367, J367, K367, e assim sucessivamente. gostaria de automatizar essa parte).

Alguem sabe ajudar?

OBRIGADA

Re: AUTOMATIZAR PROCV - IF/LOOP ?

Enviado: 28 Dez 2021 às 17:49
por osvaldomp
Olá, @marialaurachs .

Não estou certo se entendi corretamente.
Faça testes com o código abaixo, sff.
Código: Selecionar todos
Sub vbaProcv()
 Dim data As Long, LR As Long
 Dim resultado_procv As Variant
 Dim resultado_procv2 As Variant
 Dim resultado_procv3 As Variant

  With Sheets("Base")
   LR = .Cells(Rows.Count, 1).End(3).Row
   data = .Range("A" & LR).Value
   resultado_procv = Application.VLookup(data, Sheets("Planilha1").Range("B3:CQ24"), 82, False)
   resultado_procv2 = Application.VLookup(data, Sheets("Planilha1").Range("B3:CQ24"), 87, False)
   resultado_procv3 = Application.VLookup(data, Sheets("Planilha1").Range("B3:CQ24"), 7, False)
   .Range("H" & LR).Value = resultado_procv
   .Range("J" & LR).Value = resultado_procv2
   .Range("K" & LR).Value = resultado_procv3
  End With
End Sub