Jump to content
njesus

Função Proc via VBA

Recommended Posts

njesus

Boa noite,

Eu tenho o seguinte código:

TextBox2 = Application.WorksheetFunction.VLookup((TextBox1), Folha1.Range("A1:G1000"), 2, 0)

Mostro o valor na textbox2 procurado na textbox1 que se encontra na folha1 no intervalo de A1:G1000 coluna B.

O valor colocado na textbox1 encontra-se na coluna A e corresponde na mesma linha ao valor da coluna B

Alguém me consegue ajudar, fazendo com que consiga procurar o valor na coluna B correspondente na coluna A?

Ou seja, o inverso do que tenho... já tentei

...Folha1.Range("A1:G1000"), -2, 0)

mas não funciona...

Obrigado,

njesus

Share this post


Link to post
Share on other sites
jpaulino

Isso tem de funcionar (e funciona)!

Verifica se os valores estão correctos, o range, etc.

Share this post


Link to post
Share on other sites
njesus

jpaulino,

Anexo um pequeno exemplo...

http://www.4shared.com/document/7V8agmS6/Teste_-_Proc_VBA.html

Nesta situação os dados a procurar estão na coluna A e na UF mostra o correspondente na coluna B e C.

O que preciso é inverter, os dados da coluna A estão na C, e na UF mostraria os dados correspondentes na coluna A e B...

Já testei e não consigo inverter...

Podes dar uma olhadela?

Obrigado

njesus

Share this post


Link to post
Share on other sites
jpaulino

Mas isso é um problema da formula e não do código.

Tu no Prov (VLOOKUP) não podes mostrar células para esquerda, mas apenas para a direita.

Share this post


Link to post
Share on other sites
jpaulino

Claro!

 
    Dim rng As range
    
    ' Procura o valor "B" no range
    Set rng = range("b:b").Find("B")
    
    If Not rng Is Nothing Then
        ' Mostra a célula "A" do valor encontrado
        MsgBox rng.Offset(, -1).Value
    End If

Share this post


Link to post
Share on other sites
jpaulino

Alteras onde procuras e o que procuras e fazes algo como isto (não testado):

TextBox2.Value =  rng.Offset(, -1).Value

TextBox3.Value =  rng.Offset(, -2).Value

Share this post


Link to post
Share on other sites
joseA

Permitam-me...  😲

Aplicando no ficheiro exemplo seria:

 
      Dim rng As Range
    
    ' Procura o valor "B" no range
   Set rng = Range("b:b").Find(TextBox1)
    
    If Not rng Is Nothing Then
        ' Mostra a célula "A" do valor encontrado
      ' MsgBox rng.Offset(, -1).Value
       TextBox2.Value = rng.Offset(, -1).Value
      TextBox3.Value = rng.Offset(, 1).Value

    End If

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.