Bonjour
Mettez ce code dans votre feuille Mouvement
Dim Flag As Boolean
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Flag Then Exit Sub
If Not Intersect(Target, ListObjects("T_MOUVEMENT_Mouvement").ListColumns(5).DataBodyRange) Is Nothing Or _
Not Intersect(Target, ListObjects("T_MOUVEMENT_Mouvement").ListColumns(4).DataBodyRange) Is Nothing Then
Flag = True
With Target
If .Column = 5 Then
Select Case UCase(.Offset(0, -1))
Case Is = "SORTIE": .Value = .Value * -1
Case Is = "ENTREE": .Value = Abs(.Value)
End Select
Else:
Select Case UCase(.Value)
Case Is = "SORTIE": .Offset(0, 1).Value = .Offset(0, 1).Value * -1
Case Is = "ENTREE": .Offset(0, 1).Value = Abs(.Offset(0, 1).Value)
End Select
End If
End With
End If
Flag = False
End Sub
Attention à ce que la variable Flag soit bien placée en première ligne (donc tout au dessus)
Le code réagit en fonction des colonnes D et E, de sorte que si vous entrez un chiffre en E puis que, vous avez fait une erreur et que vous devez changer ENTREE par SORTIE (ou l'inverse), le code modifiera aussi la colonne E.
Si ok, merci de cloturer le fil en cliquant sur le petit v en haut à droite
Cordialement