[VBA-E]multiple de 100 dans textbox
invite05
-
Invite05 -
Invite05 -
Bonjour,
Je n'ai aucune idée de comment m'y prendre.
Je voudrai n'autoriser que des multiples de 100 dans un textbox. Si la valeur entrée renvoi Faux alors MsgBox "Entrer un multiple de 100"
Merci de m'aider !
Je n'ai aucune idée de comment m'y prendre.
Je voudrai n'autoriser que des multiples de 100 dans un textbox. Si la valeur entrée renvoi Faux alors MsgBox "Entrer un multiple de 100"
Merci de m'aider !
18 réponses
-
If not IsNumeric(valeur_entrée) _ Or valeur_entrée / 100 <> valeur_entrée \ 100 Then MsgBox "Entrer un multiple de 100" End If -
Il faut remplacer valeur_entrée par la valeur de ta Textbox. D'après ton code, le nom de ta Textbox s'appelle Quota, donc sa valeur est Quota.Value
-
J'ai peut être mal posé ma question, en effet ton code marche mais je viens de comprendre que on ne peut entrer que 1, 2 etc...Or je voudrai qu'on ne puisse entrer que 100, 200, 300, 1000, 1100 etc...
Avec ton code Thev, j'entre 1 : MsgBox : entrer un multiple de 100, 2 : même message etc...
Tu as une idée ? -
Pas compris ta remarque
Si tu entres 1 qui n'est pas un multiple de 100, il me parait normal d'avoir le message "entrer un multiple de 100" -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Exact sauf que si je veux taper : 100
j'ai après avoir tapé 1 : MsgBox
Après avoir tapé 0 : Msgbox
Après avoir tapé le dernier 0 : MsgBox
Or je voudrai que la vérification du champ se fasse après avoir valider le texte tapé par exemple au moment ou je clique sur un autre champ.
Dans ce cas la je clique dans mon champ : nombre je tape : 123
Je clique sur un autre champ et la le MsgBox : Entrer un multiple de 100
Merci Thev ! -
Private Sub Quota_BeforeUpdate() au lieu de Private Sub Quota_Change()
-
J'ai un message d'erreur avec Private Sub Quota_BeforeUpdate()
Erreur de compilation
La déclaration de la procédure ne correspond pas à la déscription de l'évenement ou de la proécdure du même nom -
Ton code doit être bon Thev mais ca doit être dans la condition du textbox que ca ne doit pas aller, voilà mon code :
Private Sub Quota_Change()
If Not IsNumeric(valeur_entrée) _
Or valeur_entrée / 100 <> valeur_entrée \ 100 Then
MsgBox "Entrer un multiple de 100"
End If
End Sub
Je rentre 123 et pas de MsgBox.
Une idée?
Merci! -
Cet événement n'existe en effet que dans la textbox d'un UserForm. Il faut donc prendre celui-ci :
Sub Quota_LostFocus()
Cet événement se produit dès que le curseur sort de la textbox. -
J'ai tester ce code :
Sub Quota_lostfocus()
If Not IsNumeric(Quota.Value) _
Or Quota.Value / 100 <> Quota.Value \ 100 Then
MsgBox "Entrez un multiple de 100"
End If
End Sub
et rien ne se passe maintenant, je suis sur Excel 2000.
Merci de m'aider. -
Dès que l'on clique avec la souris hors de la Textbox, le code s'exécute.
-
Et bien chez moi cela ne fonctionne pas, tu es sur quelle version d'Excel Thev?
Moi Excel 2000.
En mode création, lorsque je double clique sur Quota, il me renvoi au code :
private sub quota_change()
end sub
Est-ce normal qu'il ne me renvoi pas sur Quota_Lostfocus ?
Je rentre 123 dans le champ, je clique dans un autre textbox et rien ne se passe! -
je suis en excel 2007.
Quand tu double-cliques sur Quota, il y 2 ascenseurs :
l'un pour quota, l'autre pour l'événement Change. Quand tu cliques sur l'ascenseur des événements, quels sont les autres événements disponibles ? LostFocus y est-il référencé ? -
Super j'avais vérifié déjà et j'ai testé : Quota_AfterUpdate()
Et ca fonctionne !!!Merci Thev !
Mais après le Msgbox j'aimerai qu'il me surligne les caractères entrés dans le champ quota, comment faire? -
Pour mettre en rouge :
Quota.ForeColor = RGB(255, 0, 0)
Pour remettre en noir :
Quota.ForeColor = RGB(0, 0, 0) -
Ca ressemblerait à ca ?
Private Sub Quota_AfterUpdate()
If Not IsNumeric(Quota.Value) _
Or Quota.Value / 100 <> Quota.Value \ 100 Then
MsgBox "Entrez un multiple de 100"
Quota.ForeColor = RGB(255, 0, 0)
End If
End Sub
Comment donner l'instruction de remettre en noir (Quota.ForeColor = RGB(0, 0, 0)) si les données entrées renvoient VRAI sur le if ?
merci! -
P
rivate Sub Quota_AfterUpdate() If Not IsNumeric(Quota.Value) _ Or Quota.Value / 100 <> Quota.Value \ 100 Then MsgBox "Entrez un multiple de 100" Quota.ForeColor = RGB(255, 0, 0) Else Quota.ForeColor = RGB(0, 0, 0) End If End Sub -