Olá a todos.
Estou fazendo um código em VBA para cálculo de orçamento aqui da empresa. Existem várias tabelas com os valores de preço, e quando o usuário entra com alguns critérios no Formulário, o código busca qual a planilha, a tabela, a linha e a coluna que correspondem aos critérios e retorna o valor da célula correspondente.
No entanto, estou tendo um problema pra encontrar, especificamente, a coluna correspondente.
Estou usando a combinação das funções INDEX e MATCH, mas quando rodo o formulário, me retorna: "Erro em tempo de execução '1004': Não é possível obter a propriedade Match da classe WorksheetFunction"
Segue abaixo a parte do código que estou tentando rodar.
As variáveis com "cmb" na frente são os valores selecionados nas caixas de combinação pelo usuário do Formulário. São os critérios que localizam o valor procurado. "vTamanho" seria o índice de cada tabela dentro da planilha.
Após alguns testes descobri que o erro está especificamente no trecho ".Match(Espessura, W.Range(vTamanho.Offset(0, 1), vTamanho.Offset(0, 10)), 0)", que não funciona quando rodo ele "sozinho".Option Explicit Dim W As Worksheet Dim Tamanho As Variant Dim Espessura As Variant Dim NPartes As Variant Dim vTamanho As Range Dim TabelaSelecionada As Range Private Sub btCalcular_Click() If cmbTipoChapa = ("Cristal Recuperada") Then Set W = Sheets("Preço Chapa Recuperada") W.Activate Tamanho = cmbTamanhoChapa Espessura = cmbEspessura NPartes = cmbPartes With Application.WorksheetFunction Set vTamanho = W.Range("B:B").Find(Tamanho, LookIn:=xlValues, LookAt:=xlWhole, _ SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False) End With Set TabelaSelecionada = W.Range(vTamanho.Offset(1, 1), vTamanho.Offset(5, 10)) With Application.WorksheetFunction W.Range("M26").Value = .Index(TabelaSelecionada, .Match(NPartes, _ W.Range(vTamanho.Offset(1, 0), vTamanho.Offset(5, 0)), 0), .Match(Espessura, _ W.Range(vTamanho.Offset(0, 1), vTamanho.Offset(0, 10)), 0)) End With End If End Sub
Desculpem se se não fui clara ou se cometi algum erro. Essa é minha primeira postagem aqui. Mas já agradeço qualquer um que puder dar uma olhada.