njesus 0 Report post Posted January 7, 2011 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 92 Report post Posted January 7, 2011 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 0 Report post Posted January 7, 2011 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 92 Report post Posted January 7, 2011 Envia-me para o email Aqui não consigo entrar no site Share this post Link to post Share on other sites
njesus 0 Report post Posted January 7, 2011 Já seguiu... Share this post Link to post Share on other sites
jpaulino 92 Report post Posted January 7, 2011 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
njesus 0 Report post Posted January 7, 2011 Podemos contornar essa situação com outra função? Share this post Link to post Share on other sites
jpaulino 92 Report post Posted January 7, 2011 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
njesus 0 Report post Posted January 7, 2011 Como aplico nas minhas textbox's? :wallbash: Sou básico... Share this post Link to post Share on other sites
jpaulino 92 Report post Posted January 7, 2011 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 0 Report post Posted January 8, 2011 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
njesus 0 Report post Posted January 9, 2011 Obrigado JoseA e Jpaulino! É mesmo o que estava a precisar... Share this post Link to post Share on other sites