Código para ação em...
 
Notifications
Clear all

[Resolvido] Código para ação em equação simples após acionamento de "enter"

3 Posts
2 Usuários
1 Likes
934 Visualizações
(@danielsepp)
Posts: 24
Eminent Member
Topic starter
 

Senhores, bom dia.

Sou desenvolvedor python e manjo pouco de VBA. Estou criando um sistema e uma das partes dele envolve essa questão, e terei que fazer via VBA por agora.

Deixei em anexo uma planilha bem simples contendo 3 colunas e 4 linhas para teste.

1) Na coluna A tenho um número qualquer referente ao estoque (onde a equação entrará em ação)

2) Na coluna B tenho um valor qualquer de entrada que será digitado pelo usário e somado no correspondente da coluna A
3) Na coluna C tenho um valor qualquer de saída, que será digitado pelo usuário e subtraído no correspondente da coluna A

O que preciso ver como funciona via código é, após eu incluir um valor qualquer e pressionar "enter", esse valor seja jogado para o correspondente de estoque, e faça o cálculo de soma ou subtração, e esse número deve desaparecer da coluna de entrada ou de saída após o acionamento do enter.

Não preciso fazer log para histórico de entrada e saída de valores, apenas essa ação e execução da equação.

 

Agradeço imensamente a ajuda.

Este tópico foi modificado 4 anos atrás by DanielSepp
 
Postado : 07/10/2020 12:12 pm
EdsonBR
(@edsonbr)
Posts: 1057
Noble Member
 

Bom dia, @danielsepp

Botão direito na "orelha" da planilha > Exibir código

Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect(Target, [B2:C5]) Is Nothing Then
    If IsNumeric(Target) Then
      Application.EnableEvents = False
        If Target.Column = 2 Then
          Target.Offset(0, -1).Value = Target.Offset(0, -1) + Target.Value
        Else
          Target.Offset(0, -2).Value = Target.Offset(0, -2) - Target.Value
        End If
        Target.ClearContents
      Application.EnableEvents = True
    End If
  End If
End Sub
 

 Obs.: como seu foco principal nesse momento parece ser mais relacionado à aprendizagem de VBA, pra manter o código didaticamente simples não levei em consideração até esse ponto algumas possibilidades que normalmente ocorrem, como por exemplo quando o usuário copia e cola mais de um valor na mesma operação no range considerado ou estendido, insere linhas, move o intervalo, etc. Isso tudo pode ser considerado logo adiante, se necessitar.

 
Postado : 07/10/2020 12:58 pm
DanielSepp reacted
(@danielsepp)
Posts: 24
Eminent Member
Topic starter
 

@edsonbr

Excelente! Muito obrigado.

 

Já repliquei toda a lógica em todos os campos necessários do sistema, funcionou perfeitamente e compreendi 100%.

 

Muito obrigado!

 
Postado : 07/10/2020 9:30 pm