Ir ao conteúdo
  • Cadastre-se

Procv dentro de VBA no Excel


Posts recomendados

Pessoal, boa noite

 

Tenho duas dúvidas relacionadas a procv automático com programação em VBA no Excel.

 

1-) Tenho uma planilha de banco de dados onde a coluna A tem os clientes da empresa e a coluna B os respectivos vendedores de cada cliente, na planilha 2 desenvolvi um relatório de cobrança dos clientes inadimplentes que com a macro que criei formata todo o relatório retirado do sistema (ai que entra o ProcV) eu quero inserir no fim do código de formatação um proc que puxe automaticamente todos os vendedores dos clientes que estão inadimplentes... Estou usando o código abaixo que é 99% igual a um proc fora do VBA

Dim Resposta As Variant

Resposta = Application.WorksheetFunction.VLookup(Range("A7:A999"), Plan1.Range("A4:B999"), 2, [FALSO])

Porém ele não puxa dentro do VBA, fora funciona normal

 

2-) Essa planilha 2 de cobrança será salva todos os dias (com uma Macro que gera uma planilha nova) acumulando assim posições diárias de cobrança e gostaria que uma macro fizesse a busca da observação de cobrança feita pra cada nota na ultima planilha gerada (OBS: Não sei se isso é possível, mas acredito que sim)

 

Se puderem me ajudar seria demais, apenas esses 2 detalhes deixam meu relatório perfeito para meu dia a dia no trabalho

 

Link para o comentário
Compartilhar em outros sites

@Vinicius Ratsbone boa tarde,

 

22 horas atrás, Vinicius Ratsbone disse:

Resposta = Application.WorksheetFunction.VLookup(Range("A7:A999"), Plan1.Range("A4:B999"), 2, [FALSO])

 

  • Range("A7:A999"): qualificar também esse pimeiro argumento, como você fez com o segundo: Plan1.Range("A7:A999")
  • [FALSO]:
    • Não entendi o porque dos colchetes?... Devem ser eliminados
    • Como você está usando a função no VBA, os argumentos são entrados em língua inglesa: False (o número 0 também funciona)

Ficaria então:

Resposta = Application.WorksheetFunction.VLookup(Plan1.Range("A7:A999"), Plan1.Range("A4:B999"), 2, False)

Link para o comentário
Compartilhar em outros sites

@Edson Luiz Branco Boa tarde... peço desculpas pela demora, no caso eu estou trabalhando na Planilha 2 e busco dados na Planilha 1 então com sua sugestão ficaria assim:

 

Resposta = Application.WorksheetFunction.VLookup(Plan2.Range("A7:A999"), Plan1.Range("A4:B999"), 2, False)

 

Mas no teste deu erro dizendo que o objeto é obrigatório e se puder me ajudar com a segunda questão que expus eu agradeço também

Link para o comentário
Compartilhar em outros sites

@CasaDoHardware Estou editando a planilha para poder disponibilizar ela aqui... uma vez que estou fazendo testes já com dados da empresa que estou trabalhando e contém informações confidenciais. 

 

Poderia sim fazer o proc direto na planilha, mas quero minimizar erros ao máximo no momento eu estou responsável pela área mas posso sair e nunca se sabe o conhecimento do próximo. 

 

Inclusive pro meu modo de trabalho é ótimo vir automático os dois procs que expus aqui, melhora e muito a dinâmica de trabalho. Em breve a disponibilizarei aqui

Link para o comentário
Compartilhar em outros sites

Segue as planilhas.

 

Extração de Dados é a que meu sistema gera e a de Trabalho é onde coloco essa planilha e rodo as macros.

 

Dentro do código VBA comentei cada um para diferenciarem.

 

Não tem como salvar ela habilitada pra Macro então salvei normal, espero que consigam habilitar e ver os códigos 

Planilha_ExtracaoDados.XLSX

Planilha_Trabalho_Exemplo.xlsx

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...