Ir ao conteúdo
  • Cadastre-se
cris.baiano

Vba procv no excel

Recommended Posts

Boa noite pessoal,

 

Estou quebrando minha cabeça a dias preciso de uma macro onde eu faça a procura de um determinado valor via procv e quando eu não encontrar o resultado a celular fica "limpa" sem nada, eu consigo fazer a célula ficar fazia mas com a formula nela, o que eu quero é realmente que ela fique fazia sem nada..

 

Se alguém souber agradeço desde já,

 

o cód que fiz foi esse

 

 

Range("K3").Select
    
    ActiveCell.Formula = "=IF(VLOOKUP(I3,b:G,6,0),0,VLOOKUP(I3,b:G,6,0)"
    Selection.AutoFill Destination:=Range("K3:K13"), Type:=xlFillDefault


End Sub

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja se é isso que precisa: 

 ActiveSheet.Range("K3").Select

    ActiveCell.Formula = "=IF(VLOOKUP($I3,$B:$G,6,0),0,VLOOKUP($I3,$B:$G,6,0))"

    On Error GoTo clear

    If Application.WorksheetFunction.VLookup([I3], [B:G], 6, 0) Then
        Selection.AutoFill Destination:=Range("K3:K13"), Type:=xlFillDefault
    End If

    Exit Sub

clear:     Selection.clear
    Selection.AutoFill Destination:=Range("K3:K13"), Type:=xlFillDefault

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
1 hora atrás, Basole disse:

Veja se é isso que precisa: 


 ActiveSheet.Range("K3").Select

    ActiveCell.Formula = "=IF(VLOOKUP($I3,$B:$G,6,0),0,VLOOKUP($I3,$B:$G,6,0))"

    On Error GoTo clear

    If Application.WorksheetFunction.VLookup([I3], [B:G], 6, 0) Then
        Selection.AutoFill Destination:=Range("K3:K13"), Type:=xlFillDefault
    End If

    Exit Sub

clear:     Selection.clear
    Selection.AutoFill Destination:=Range("K3:K13"), Type:=xlFillDefault

 

Boa tarde Basole,

 

Apliquei seu código porém ele me retorna tudo vazio, os valores a serem encontrados também estão sendo limpos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Provavelmente está retornando #N/D, pois não está encontrando o valor procurado.

A formula que voce postou retorna 0 (zero) caso o valor da celula "I3" seja encontrado na matriz B:G.

Pelo que entendi, seria isso que voce quer.

Faça um teste com este codigo alterado:

 

Sub Teste()

 ActiveSheet.Range("K3").Select

    ActiveCell.Formula = "=IF(VLOOKUP($I3,$B:$G,6,0),0,VLOOKUP($I3,$B:$G,6,0))"    
        Selection.AutoFill Destination:=Range("K3:K13"), Type:=xlFillDefault    


End Sub

 

 

 

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Basole, eu devo estar aplicando algo errado, pois ele limpa tudo até as buscar verdadeiras, poderia upar uma planilha exemplo com seu código?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seria melhor voce enviar sua planilha original, ou um exemplo com alguns dados ficticios, para tentar entender melhor o que está ocorrendo, através do dados e o cenario.

 

  • Curtir 1

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

×