1
resposta

Duvida com VBA

Olá a todos sou novato em VBA e estou tendo uma duvida, em uma parte do meu código que esta a baixo, para que possam me ajudar vou explicar o que eu quero:

Eu estou cadastrando um item, só que esse item pode ou não já esta cadastrado, se ele tiver eu quero só alterar o valor para o novo valor, para isso eu cadastrei meu item em um célula e selecionei ela no each eu procurei se essa célula já existe nos meus produtos já cadastrados, eu consigo receber se esse item já foi ou não cadastrado, agora preciso de ajuda para saber como vou fazer para encontrar a celular referente esse produto que já foi cadastrado para substituir o antigo valor para o novo valor.

'Verificar item na listagem
Celulaproduto = Range("h104857").End(xlUp)
For Each produto In [B:B]
    If Celulaproduto = produto Then
        MsgBox ("foi")
       Range(produto).Select
    End If
Next
1 resposta

Fala Daniel, tudo bem?

Uma das principais vantagens de usar "for..each" é que a contagem de coleções já é feita por objetos.

O que isso significa? Que você pode usar o item contado diretamente. Neste seu código, observe que produto é um objeto do tipo range. Você não precisa fazer range(produto).select. Experimente produto.select.

Com isso, você pode pegar qualquer propriedade da célula que você encontrou. Exemplos:

Pegar o endereço: produto.address

Pegar a linha da célula: produto.row

Pegar o valor: produto.value

Pegar o valor 2: produto.value2

E assim por diante.

Experimente e se tiver dúvidas, mande por aqui ;)

Abraços!