Mais logiquement quand tu vas cliquer sur le bouton dans le pied, cela devrait déclencher le BeforeUpdate.
Donc à priori, c'est le seul endroit où tu devrais avoir à mettre le code.
En passant au lieu d'utiliser une valeur de texte pour transmettre le résultat d'une évaluation qui répond Oui ou Non, on préfère utiliser un booléen.
ça donne un truc du genre :
L'intérêt c'est qu'il y a moins de risque d'erreur. Les booléens n'acceptent que trueou false alors que les texte acceptent tout sorte de valeur (ex : "PasBon", "KO ", "Faux","Fuax").
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 dim estCorrect as boolean:estCorrect=true 'Soyons optimiste If Left(num_compte.Value, 2) = "45" And Mid(num_compte.Value, 6, 5) >= 30000 And Mid(num_compte.Value, 6, 5) < 40000 Then estCorresct=false End If If not estCorrect Then MsgBox " Les n° de comptes saisis ne doivent pas être dans les plages suivantes : " & Chr(10) & _ " 45.xxx.30000.x à 45.xxx.39999.x" & Chr(10) & _ " 46.xxx.90000.x à 46.xxx.99999.x" & Chr(10) & _ " 48.xxx.50000.x à 48.xxx.59999.x" & Chr(10) & _ " 07.xxx.80000.x à 07.xxx.99999.x" & Chr(10) & _ " 08.xxx.60000.x à 08.xxx.69999.x" & Chr(10) & _ " 28.xxx.87000.x à 28.xxx.99999.x" & Chr(10) & _ " 49.xxx.86000.x à 49.xxx.89999.x", , "Validation du numéro de compte" Exit Sub End If
Le compilateur ne peut donc pas te prévenir si tu n'as pas mis une valeur valide et tu ne le découvriras qu'à l'exécution au mieux en test au pire en production.
A+
Partager