Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
  • Avatar do usuário
Por IsraelEfraim
#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.

Imagem

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
Imagem

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.

Imagem

Muito obrigado por dedicar seu tempo ao meu tópico, se puder me ajudar, agradeço. :D
Editado pela última vez por IsraelEfraim em 24 Fev 2016 às 18:07, em um total de 1 vez.
Avatar do usuário
Por alexandrevba
Avatar
#7932
Bom dia!!

Caso a resposta não seja corrigido, dando a solução do seu post por outro colaborado, poste seu arquivo modelo.

Att
Avatar do usuário
Por Reinaldo
Avatar
#7974
Uma possibilidade
Código: Selecionar todos
Private Sub CommandButton1_Click()
Dim Produto As String
Dim Sabor As String
Dim x As Integer
x = 2
Produto = TextBox1.Text
Sabor = TextBox2.Text
Do While Cells(x, 1) <> ""
    If Cells(x, 1) = Produto And Cells(x, 2) = Sabor Then TextBox3.Text = Format(Cells(x, 3).Value, "R$ * #,##0.00")
    x = x + 1
Loop
If TextBox3.Text = "" Then MsgBox "Produto não encontrado"
End Sub
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord