- 23 Fev 2016 às 23:12
#7921
Olá galera, bom dia/tarde/noite.
Primeiramente gostaria de agradecer por estar dedicando seu tempo para ajudar pessoas com problemas no Excel/vba.
Seguinte, meu problema é na realidade bem banal pra alguns de vocês. Estou tentando fazer uma "procv" para dois critérios, nesse caso, seria o "produto" e o "sabor". Utilizo o Index e o Match para poder realizar a busca onde o valor coincida com o produto e o sabor que a pessoa digitou.

O código que fiz foi este:
Infelizmente, quando você tenta procurar por um produto que não seja o primeiro da lista ele retorna um erro (1004) alertando que não foi possível obter a propriedade Index. Através de pesquisas descobri que a função Match no VBA só lhe retorna o primeiro valor, se não for o mesmo, ele dará erro. Entretudo, pelo que entendi o Match usado como Application.Match retorna o primeiro valor, mas não estou usando esse em questão, e sim uma função da planilha, porém não tenho certeza se difere.

Muito obrigado por dedicar seu tempo ao meu tópico, se puder me ajudar, agradeço.
Primeiramente gostaria de agradecer por estar dedicando seu tempo para ajudar pessoas com problemas no Excel/vba.
Seguinte, meu problema é na realidade bem banal pra alguns de vocês. Estou tentando fazer uma "procv" para dois critérios, nesse caso, seria o "produto" e o "sabor". Utilizo o Index e o Match para poder realizar a busca onde o valor coincida com o produto e o sabor que a pessoa digitou.
O código que fiz foi este:
Private Sub CommandButton1_Click()
Dim produto As String
Dim Sabor As String
produto = TextBox1.Text
Sabor = TextBox2.Text
TextBox3 = "R$" & Application.WorksheetFunction.Index(Range("C2:C5"), _
Application.WorksheetFunction.Match(produto, Range("A2:A5"), 0), _
Application.WorksheetFunction.Match(Sabor, Range("B2:B5"), 0))
End Sub
Infelizmente, quando você tenta procurar por um produto que não seja o primeiro da lista ele retorna um erro (1004) alertando que não foi possível obter a propriedade Index. Através de pesquisas descobri que a função Match no VBA só lhe retorna o primeiro valor, se não for o mesmo, ele dará erro. Entretudo, pelo que entendi o Match usado como Application.Match retorna o primeiro valor, mas não estou usando esse em questão, e sim uma função da planilha, porém não tenho certeza se difere.
Muito obrigado por dedicar seu tempo ao meu tópico, se puder me ajudar, agradeço.

Editado pela última vez por IsraelEfraim em 24 Fev 2016 às 18:07, em um total de 1 vez.