Compartilhar via

Procv com VBA

Anônima
2022-06-06T13:12:12+00:00

Bom dia!

Estou com o seguinte codigo em VBA para procv:

Sub PROCV_MATERIAL()

Worksheets("Paletização").Activate

Set intervalo = Range("D2:M1000")

Worksheets("Carretas").Activate

Set Material = Range("D4")

Set cod_ul = Range("E4")

cod_ul.Value = Application.WorksheetFunction.VLookup(Material, intervalo, 10, False)

End Sub

A planilha possui duas Abas Uma aba chamada Paletização e uma aba chamada Carretas. Na aba carretas o usuario coloca o codigo do material e o codigo vai buscar o cod-ul (que é o codigo do cliente) na aba Paletização e atuomaticamente preenche esse codigo na aba Carretas na celula E4

A duvida é, como deixar esse codigo aplicavel para as linhas debaixo, e não apenas nas celulas setadas no codigo?

Microsoft 365 e Office | Excel | Para uso doméstico | Windows

Pergunta bloqueada. Essa pergunta foi migrada da Comunidade de Suporte da Microsoft. É possível votar se é útil, mas não é possível adicionar comentários ou respostas ou seguir a pergunta.

0 comentários Sem comentários

Resposta aceita pelo autor da pergunta

Anônima
2022-06-06T15:14:19+00:00

Boa tarde, sagatvr,

Tentei replicar com simplicidade a Pasta de Trabalho que você descreveu.

Veja se entendi bem e se minha solução atende ao que você precisa e se fui claro na explicação.

Editei seu código para ele buscar os valores que estão na coluna D "Material" e preencher com sua letra minúscula na Coluna E (Cod_ul). Essa busca é feita na outra planilha que criei idêntica a sua planilha "Paletização", onde a primeira coluna (Coluna D) possui a letra maiúscula e a última coluna do intervalo (Coluna M) possui a letra em minúsculo.

Deixei a foto abaixo e vou deixar o código também.

Me diz se atendeu ao que você precisa.

Fico no aguardo,

Abraços!!!

CÓDIGO:

Sub PROCV_MATERIAL()

Worksheets("Paletização").Activate

Set intervalo = Range("D2:M1000")

Worksheets("Carretas").Activate

'Seleciona a célula D4 da planilha "Carretas"

Worksheets("Carretas").Range("D4").Select

'Executa o Do While para percorrere todas as células que estão preenchidas

'não pode haver células em branco entre os códigos da coluna D.

Do While ActiveCell.Value <> ""

'Set Material = Range("D4") 

Set Material = ActiveCell 'Material é igual a célula ativa 

'Set cod\_ul = Range("E4") 

Set cod\_ul = ActiveCell.Offset(0, 1) 'cod\_ul é igual a célula à direita da célula ativa 

'cod\_ul.value é igual ao resultado da fórmula PROCV 

cod\_ul.Value = Application.WorksheetFunction.VLookup(Material, intervalo, 10, False) 

'desce uma linha para selecionar o próximo código de Material 

ActiveCell.Offset(1, 0).Select 

'Retorna para o Do While

Loop

'Encerra a Sub

End Sub

IMAGEM:

Esta resposta foi útil?

1 pessoa achou esta resposta útil.
0 comentários Sem comentários

2 respostas adicionais

Classificar por: Mais útil
  1. Anônima
    2022-06-06T17:50:46+00:00

    Perfeito! Era exatamente isso, muito obrigado

    Esta resposta foi útil?

    1 pessoa achou esta resposta útil.
    0 comentários Sem comentários
  2. Anônima
    2022-06-06T13:59:27+00:00

    Olá , tudo bem?

    Obrigada por entrar em contato com a Comunidade Microsoft.

    Meu nome é Valéria e farei o possível para ajudar.

    Para obter maiores esclarecimentos sobre o seu questionamento, peço a gentileza de acessar o link abaixo que vai direcioná-lo ao MSDN que é um fórum especialmente destinado para desenvolvedores e profissionais em TI para tratar está questão.

    https://social.msdn.microsoft.com/Forums/pt-BR/....

    Para criar uma nova pergunta no fórum MSDN, acesse:

    https://social.msdn.microsoft.com/Forums/pt-BR/....

    Basta logar com a sua conta Microsoft.

    Espero ter ajudado, até mais!

    Esta resposta foi útil?

    0 comentários Sem comentários