Re : macro événementielle
Bonjour à tous
Ci-dessous ma macro , après bien des galères.
certes la formule propsée était correcte mais m'obloigé à la saisir dans toutes les cellules:concernées
Merci à tous
Private Sub Worksheet_Change(ByVal Target As Range)
''remplacer Target par Target
'Sub test()
Dim msg
msg = "attention, le nombre de décimale est supérieur à 2"
'variable n pour Range
Dim n
n = Target
'vérifie que la contenu de la cellule est numérique
If IsNumeric(Target) Then
'variable pour touver la position de la virgule en partant de la droite
Dim droitestvirg
'x = 1
'variable pour trouver si le nombre a une décimale (exemple saisie (,00 alors variablen=5)
Dim estvirg
y = 0
Do
''variable pour trouver la position de la virgule en partant de la droite du nombre (variable n)
'' Dim droite
' ' droite = Right(n, x)
' ' virg = Mid(droite, 1, 1)
y = y + 1
'variable pour trouver s'il existe une ","
droitestvirg = Right(n, y)
estvirg = Mid(droitestvirg, 1, 1)
'vérifie la présence d'une virgule et que le nombre de décimale est = à 2
If estvirg = "," And y = 3 Then
GoTo sortir
End If
'vérifie que le nombre de décimale est = à 3 et le 3éme carctère en partant de la droite n'est pas la virgule
'
If estvirg <> "," And y = 3 Then
Target.ClearContents
GoTo sortir
End If
' vérifie que le nombre de carctère du chiffre est = à y alors pas de décimale donc sortir de la sub
If y = Len(n) Then
GoTo sortir
End If
Loop Until y = Len(n)
End If
sortir:
End Sub