Página 1 de 1

Erro ao usar a função IF no VBA: "qualificador inválido"

Enviado: 26 Ago 2019 às 10:07
por AguiarF
Oi, Pessoal.

Estou criando para a minha empresa uma macro que processe o banco de dados dos nossos produtos. A ideia é que quando a gente insira o nome do produto, já venha o peso bruto, o comprimento, a largura e altura dele (porque estes são dados já fixos pra cada item), que ficarão nas colunas subsequentes a coluna 1, onde estará o nome do produto. Estou escrevendo a Macro conforme descrito abaixo, mas diz que dá erro de compilação: "qualificador inválido". Poderiam me dar uma ajuda? Antes de mais nada, gostaria de dizer que sou totalmente leiga no assunto haha. Segue o código:

Option Explicit


Sub If_Peso()


Dim Cells(2 To 11, 2 To 5) As Integer
Dim r As Integer, c As Integer



For r = 2 To 11
For c = 2 To 5


If Cells("r", "1").Value = "Tomate" Then

Cells("r", "2").Value = "11,16"
Cells("r", "3").Value = "0,11"
Cells("r", "4").Value = "0,305"
Cells("r", "5").Value = "0,456"




End If

Next r
Next c



End Sub

Re: Erro ao usar a função IF no VBA: "qualificador inválido"

Enviado: 26 Ago 2019 às 11:42
por babdallas
Código: Selecionar todos
Cells(r, 1).Value
ao invés de
Código: Selecionar todos
Cells("r", "1").Value

Outra coisa.
Código: Selecionar todos
Cells(r, 2).Value = "11,16"
Note que no código acima o 11,16 está entre aspas. Isot fará que seja colocado um texto ao invés de número. Se quiser que seja número, faça:
Código: Selecionar todos
Cells("r", "2").Value = 11,16

Estude também sobre hierarquia de objetos no VBA e sobre a propridade Name x Codename das planilhas. É bom você referenciar a planilha, caso contrário o Excel irá considerar sempre a planilha ativa. Isto pode dar erro ou trazer resultados inesperados dependendo do caso.

Re: Erro ao usar a função IF no VBA: "qualificador inválido"

Enviado: 26 Ago 2019 às 12:12
por AguiarF
[quote="babdallas"]
Código: Selecionar todos
Cells(r, 1).Value
Olá, Babdallas.

Fiz conforme você falou e agora aparece um novo erro: " erro de compilação: next sem for". Saberia dizer o porquê, por gentileza?

Re: Erro ao usar a função IF no VBA: "qualificador inválido"

Enviado: 26 Ago 2019 às 14:22
por babdallas
Tente algo assim
Código: Selecionar todos
Sub If_Peso()
    Dim r As Integer, c As Integer
    Dim vrtVal As Variant
    
    vrtVal = Array(11.16, 0.11, 0.305, 0.456)
    
    With wshTeste 'Este é o codename da planilha. Modifique para o codename da sua planilha
        For r = 2 To 11
            For c = 2 To 5
                If .Cells(r, 1).Value2 = "Tomate" Then
                    .Cells(r, c).Value2 = vrtVal(c - 2)
                End If
            Next c
        Next r
    End With
End Sub