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.
#47346
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
#47349
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.
#47362
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
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