VBA - Isumeric ou 0
Bonsoir,
J'ai un code qui affiche un message d'erreur lorsque les données entrées ne sont pas sous forme numérique. Seul problème, le message d'erreur s'affiche aussi quand les textbox sont laissées vides. Et je dois donc remplir 0 dans toutes les TB concernées... assez fastidieux !
Quelle modification puis-je apporter pour éviter cela ?
Merci de votre aide !
Private Sub CommandButton1_Click()
Dim lastrow As Long
Dim i As Long
Dim element As Variant
Dim msgErreur As String
Dim nbErreur As Integer
If MsgBox("Etes-vous certain de vouloir ajouter ces informations?", vbYesNo, "Demande de confirmation") = vbYes Then 'condition : si oui au message
Set ws = Sheets("BDD")
ws.Unprotect
nbErreur = 0
msgErreur = "Merci de vérifier les erreurs suivantes:" & vbCrLf
If CB_code.value = "" Then
nbErreur = nbErreur + 1
msgErreur = msgErreur & " - Code obligatoire" & vbCrLf
End If
If Not IsNumeric(TB_poids) Then
nbErreur = nbErreur + 1
msgErreur = msgErreur & "Le poids doit être au format nombre" & vbCrLf
End If
If nbErreur > 0 Then
MsgBox (msgErreur) & " Autrement saisir 0 dans les cases concernées" & vbCrLf
Else
Bonsoir,
Une TextBox ne contient que du texte. Si vide, sa valeur est donc "". Testée avec IsNumeric, la réponse sera naturellement False, car la valeur texte vide n'est pas numérique (ne peut être convertie en nombre).
Si ta saisie est à caractère numérique, mais n'est pas obligatoire, il te faut tester si la valeur est <>"" et non numérique pour décréter une erreur.
Cordialement.
Bonjour Globularia,
La solution
If TB_Poids.Value <> "" And Not IsNumeric(TB_Poids) Then
nbErreur = nbErreur + 1
msgErreur = msgErreur & "Le poids doit être au format nombre" & vbCrLf
End If
A+
Bonjour, Re, Bruno !
Un autre conseil que je ferais volontiers serait de répartir le travail :
- Vérifier la validité de la saisie au moment de la saisie, en utilisant une procédure AfterUpdate ou BeforeUpdate ou Change ... du contrôle selon le type de vérification à faire, qui peut inclure des corrections automatiques. Ainsi si une saisie a été réalisée, tu garantis qu'elle est valide.
- Dans la procédure de validation, tu n'as alors plus qu'à vérifier que tous les champs obligatoires ont été saisis.
Cordialement.