Notifications
Clear all

Procv automatico

5 Posts
2 Usuários
0 Reactions
957 Visualizações
(@guism)
Posts: 0
New Member
Topic starter
 

Boa noite,

Preciso preencher automaticamente uma coluna de minha tabela com uma função PROCV, até ai tudo bem, vou lá e gravo a macro e copio o código.

Entretanto, as linhas da planilha variam de mês a mês e minha intenção é que ao clicar no botão que executa a PROCV ele entenda quantas linhas tem e só faça até a última.

Não sei bem como definir variáveis para range ou se seria um caso de loop mesmo.

 
Postado : 05/08/2015 7:48 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Só pelas informações que colocou só da para orientar a utilizar a pesquisa no forum e procurar por PROCV ou VLOOKP que é o correspondente ao procv no VBA e tambem sobre Range Dinamico.

 
Postado : 05/08/2015 9:10 pm
(@guism)
Posts: 0
New Member
Topic starter
 

Vou tentar explicar melhor. Pretendo inserir a PROCV na célula H2 e quero que ao clicar no botão ele arraste essa PROCV até a ultima linha da planilha, só que no mês seguinte essa ultima linha vai variar então preciso que o código entenda aonde é a ultima linha. Minha PROCV está assim: VLOOKUP(RC[-3],COMPLETA!R1C1:R1485C2,2)

Pensei em um loop igual ao abaixo, que preenche enquanto a célula não for vazia, mas em vez de ele somar 10 ao valor como abaixo, preciso que ele aplique a PROCV na célula.

Dim i As Integer
i = 1

Do While Cells(i, 1).Value <> ""
Cells(i, 2).Value = Cells(i, 1).Value + 10
i = i + 1
Loop

 
Postado : 07/08/2015 9:32 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Se convertir corretamente, veja se consegue ajustar :

Estamos inserindo a formula na Sheet2 efetuando a pesquisa na Sheet1

Sub Vlookup_AltoFill()

    Dim myRange As String
    Dim iniRow As Long
    Dim Ultimalinha As Long
    Dim procv_Por
    
    iniRow = 2 'Linha inicial para pesquisa
    Ultimalinha = Sheet1.Range("A" & Rows.Count).End(xlUp).Row 'Ultima linha coluna A

    'Definimos o Range para pesquisa
    myRange = "Sheet1!A$" & iniRow & ":C$" & Ultimalinha

    procv_Por = "E2" 'Valor Procurado na celula E3
    
    'Inserimos a formula
    Range("H2").Formula = "=VLOOKUP(" & procv_Por & "," & myRange & ",2)"

    'Preenchemos até a ultima linha
    Range("H2:H" & Ultimalinha).FillDown
    
End Sub
 
Postado : 07/08/2015 1:34 pm
(@guism)
Posts: 0
New Member
Topic starter
 

Perfeito, fiz os ajustes das referências e funcionou perfeitamente.

Bom que ainda deu pra eu entender a lógica.

 
Postado : 10/08/2015 10:55 am