Comparer valeurs Texbox a une valeurs en %

bibbip35

XLDnaute Occasionnel
Bonjour a tous

Jme permets de vous exposer mon pb...

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 %?

Merci à tous

Bibbip35
 

bibbip35

XLDnaute Occasionnel
Re : Comparer valeurs Texbox a une valeurs en %

Merci pour l'intrêt portée au fil de dsicussion

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

Merci d'avance

Bibbip35
 

Pièces jointes

  • BIBBIP35.xlsm
    278.6 KB · Affichages: 28

Docmarti

XLDnaute Occasionnel
Re : Comparer valeurs Texbox a une valeurs en %

Bonsoir.

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


Cordialement

Docmarti
 

Docmarti

XLDnaute Occasionnel
Re : Comparer valeurs Texbox a une valeurs en %

bibbip35

Code:
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


Cordialement

Docmarti
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 886
Membres
101 830
dernier inscrit
sonia poulaert