Bonsoir,
Je ne sais pas si ton métier impose une arme, mais Target n'est pas forcément une cible....
Target, dans le code VBA, désigne la cellule (que tu modifies, que tu sélectionnes.......)
dans ce code :
Private Sub Worksheet_Change(ByVal Target As Range)
If IsNumeric(Target) And Target.Count = 1 Then
If Target.Row > 2 And Target.Column = 3 And Target.Offset(, -1) <> "" Then
Application.EnableEvents = False
Target = Application.RoundUp(Target / Target.Offset(, -1), 0) * Target.Offset(, -1)
Application.EnableEvents = True
End If
End If
End Sub
La première ligne, c'est un événement, qui se déclenche, en fonction de ce que tu fais, sur la feuille.....
Dans notre cas, Si tu changes quelque chose dans la feuille, ce code s'exécute....
Première ligne : si ce que tu as entré dans une cellule est numérique, et que tu ne l'as entré que dans une seule cellule, on continue
Deuxième ligne : Si la cellule que tu as modifiée se situe au delà de la ligne 2, qu'elle est dans la colonne C (3), et que la cellule à gauche n'est pas vide.....
ICI, on supprime tout évènement ultérieur, sinon, on entre dans une boucle infinie......
Application.EnableEvents = False
Puis, le calcul, le même que je t'ai donné, par formule, en début de fil
et enfin, on autorise Excel à ré-utiliser les évènements.....
Application.EnableEvents = True