Ir ao conteúdo
  • Cadastre-se

Visual Basic Worksheet Change modificando o valor digitado VBA Excel


Ir à solução Resolvido por Midori,

Posts recomendados

Olá caros colaboradores.

Vocês têm me ajudado muito. Obrigado.

 

Tenho um problema que não consigo solucionar.

 

Preciso pegar o valor digitado na célula e modificá-lo automaticamente com base em uma condição, acrescentando à ele o valor de outra célula.

Tentei assim:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    
    'Dim index As Integer
    
    celula = Range("A" & Target.Row)
        
    'For index = 1 To 1
    If Target.Column = 1 Then
        ThisRow = Target.Row
        If Target.Value > 0 Then
            
            'Range("C" & ThisRow).Value = Range("A" & ThisRow).Value
            
            Range("A" & ThisRow).Value = celula & (Range("B" & ThisRow).Value)



            'Range("A" & ThisRow).Value = (Range("C" & ThisRow).Value) & (Range("B" & ThisRow).Value)
            'Range("B" & ThisRow).ClearContents
            'Range("C" & ThisRow).ClearContents
        Else
            Range("B" & ThisRow).Interior.ColorIndex = xlColorIndexNone
        End If
        'Application.EnableEvents = False
    End If
    'Next
    'Exit sub
End Sub


'As partes comentadas foram tentativas que fiz sem sucesso.

 

Quando digito 400 na colunaA em uma linha qualquer é acrescentado a unidade KG (da colunaB )  ao valor 400.

O resultado é sempre assim. Um loop:

400KGKGKGKGKGKGKGKGKGKGKGKGKGKGKGKGKGKGKGKGKGKGKGKGKGKGKGKGKGKGKGKGKGKGKGKGKGKGKGKGKGKGKGKGKGKGKG

 

Preciso muito de uma solução. Muito obrigado.

Link para o comentário
Compartilhar em outros sites

  • Solução

@Agnaldo Marlon Rodrigues  Se entendi o que está tentando fazer, veja se é isto,

 

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Texto   As String
    
    If Target.Column = 1 And Target.Value > 0 Then
        Texto = Target & Target.Offset(0, 1)
        Application.EnableEvents = False
        Target = Texto
        Application.EnableEvents = True
    Else
        Target.Offset(0, 1).Interior.ColorIndex = xlColorIndexNone
    End If
End Sub

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...