Ir ao conteúdo
  • Cadastre-se
Vinicius Ratsbone

Procv dentro de VBA no Excel

Recommended Posts

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

 

Compartilhar este post


Link para o post
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)

Compartilhar este post


Link para o post
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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu fiu ignorado mas vou repetir se disponibilizar a planilha fica mais fácil.

 

porque nao usa ao indes de  VBA  fazer com formulas direto na planilha.

 

Simplifica que resolve.

Compartilhar este post


Link para o post
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

Compartilhar este post


Link para o post
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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se ela ta salva sem habilitação de macros nao tem codigo.

 

Salve novamente e compacte os arquivos.

 

 

 

MODERAÇÃO JA QUESTIONEI ISSO, E NAO ENTENDO O PORQUE AINDA NAO FOI CORRIGIDO.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×