Je renseigne aujourd'hui 1 formulaire vba ou il y a 1 texbox dont la valeurs est en %
Je souhaiterais qu'il ya a 1 msg bos si la valeurs > 100%
J'ai crée le code ci-dessous:
If TextBox11.Text > "100%" Or TextBox11.Text < "0%" Then
MsgBox "Attention, le % de la production affecter sur Janvier" & Chr(13) & "est incohérent : Il doit se situer entre 0% et 100% ", vbCritical, "Données Incohérantes"
Exit Sub
End If
If TextBox11.Text < "100%" Then
Select Case MsgBox("Attention, le % de la production sur Janvier est inférieur a 100% " & Chr(13) & "Etes-vous certain de votre choix ? " & Chr(13) & "Si oui , la production doit être affectée également sur une autre ligne ", vbOKCancel + vbQuestion, "Données Incohérantes")
Case vbOK
'procédure si click sur Ok
Case vbCancel
Exit Sub
End Select
End If
Le problème est que quand ca ne compare pas correctement...sauf qd je mets 10%??? Ca fonctionne?
Il ya t-il qq de chose de particulier qd on utilise le vba et les %?
Vosu trouverez ci- le fichier exemple du pb...
Pour faire simple, qd je tape 1 valeurs à 100% il n'y a pas de message
Qd je tape 1 valeurs < 100%
("Attention, le % de la production sur Février est inférieur a 100% " & Chr(13) & "Etes-vous certain de votre choix ? " & Chr(13) & "Si oui , la production doit être affectée également sur une autre ligne ",
Qd je tape 1 valeurs >100%
MsgBox "Attention, le % de la production affecter " & Chr(13) & "est incohérent : Il doit se situer entre 0% et 100% ", vbCritical, "Données Incohérantes"
Avec EXIT SUB pour bloquer la saisie
La fonction Split pour supprimer le caractère "%".
La fonction Replace au cas où il y aurait un séparateur décimal dans la valeur.
Code:
splitTexbox11 = Split(TextBox11.Value, "%")
ValTextBox11 = Val(Replace(splitTexbox11(0), ",", "."))
'La fonction Val donne une valeur numérique qu'il faut comparer ensuite avec des valeurs numériques
If ValTextBox11 > 100 Or ValTextBox11 < 0 Then
If TextBox11 <> "" And InStr(TextBox11, "%") = 0 Then
'Tu peux ajouter le caractère % oublié par l'utilisateur
TextBox11 = TextBox11 & "%"
'Ou lui signaler l'oubli dans un message
MsgBox "On n'oublie pas le caractère % s.v.p."
End If