Dans un UserForm ajout=E9 =E0 un document Word, j'aimerais mettre en
condition un groupe de mes contr=F4ls Texbox qui n'acceptent que des
valeurs positifs entiers, et d'autres n'acceptent que des nombres
fractionn=E9s positifs.
J'ai fait cette procedure, pour controler la saise dans un seul
TextBox, mais pas encore arriver :
Private Sub TextBox2_Change()
If Not IsNumeric(TextBox2) And Right(TextBox2, TextBox2.SelStart, 1)
<> "," Then
If Not IsEmpty(TextBox2) Then
TextBox2 =3D Left(TextBox2, Len(TextBox2) - 1)
End If
End If
End Sub
Ca veut dire que si le caractere tap=E9 n'est pas un num=E9ro ou une
virgule, alors rien n'est ecrit dans le TextBox2.
Pour le deuxieme point, j'aimerais d'une fa=E7on g=E9n=E9rale trouver une
solution pour controler mes deux groupes au lieu de taper chaque fois
une procedure =E0 chaque controle :
Groupe 1 : Entier positifs :
Private Sub TextBoxX_Change()
If Not IsNumeric(TextBoxX) Then
If Not IsEmpty(TextBoxX) Then
TextBox2 =3D Left(TextBoxX, Len(TextBoxX) - 1)
End If
End If
End Sub
Groupe 2 : Nombres Fraction=E9s :
Private Sub TextBoxX_Change()
If Not IsNumeric(TextBoxX) And Right(TextBoxX, TextBoxX.SelStart, 1)
<> "," Then
If Not IsEmpty(TextBoxX) Then
TextBox2 =3D Left(TextBoxX, Len(TextBoxX) - 1)
End If
End If
End Sub
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Corona
Bonjour Apitos, Pour ton cas, il me semble qu'il vaut mieux passer par un module de classe. Un exemple ici http://cjoint.com/?kpr1PowKBR J'ai placé un "I" dans la propriété 'Tag' des 'textbox' dont je voulais avoir un entier. Sans "I", il est possible d'ajouter un '.' pour la décimale. (pour la virgule) il suffit d'adapter. J'ajoute que cette macro est inspirée d'une intervention que Laurent Longre a faite en son temps sur le forum "Excel". Philippe
"Apitos" a écrit dans le message de news:
Bonjour,
Dans un UserForm ajouté à un document Word, j'aimerais mettre en condition un groupe de mes contrôls Texbox qui n'acceptent que des valeurs positifs entiers, et d'autres n'acceptent que des nombres fractionnés positifs.
J'ai fait cette procedure, pour controler la saise dans un seul TextBox, mais pas encore arriver :
Private Sub TextBox2_Change() If Not IsNumeric(TextBox2) And Right(TextBox2, TextBox2.SelStart, 1) <> "," Then If Not IsEmpty(TextBox2) Then TextBox2 = Left(TextBox2, Len(TextBox2) - 1) End If End If End Sub
Ca veut dire que si le caractere tapé n'est pas un numéro ou une virgule, alors rien n'est ecrit dans le TextBox2.
Pour le deuxieme point, j'aimerais d'une façon générale trouver une solution pour controler mes deux groupes au lieu de taper chaque fois une procedure à chaque controle :
Groupe 1 : Entier positifs :
Private Sub TextBoxX_Change() If Not IsNumeric(TextBoxX) Then If Not IsEmpty(TextBoxX) Then TextBox2 = Left(TextBoxX, Len(TextBoxX) - 1) End If End If End Sub
Groupe 2 : Nombres Fractionés :
Private Sub TextBoxX_Change() If Not IsNumeric(TextBoxX) And Right(TextBoxX, TextBoxX.SelStart, 1) <> "," Then If Not IsEmpty(TextBoxX) Then TextBox2 = Left(TextBoxX, Len(TextBoxX) - 1) End If End If End Sub
merci de votre aide.
Bonjour Apitos,
Pour ton cas, il me semble qu'il vaut mieux passer par un module de
classe.
Un exemple ici http://cjoint.com/?kpr1PowKBR
J'ai placé un "I" dans la propriété 'Tag' des 'textbox' dont je voulais
avoir un entier. Sans "I", il est possible d'ajouter un '.' pour la
décimale. (pour la virgule) il suffit d'adapter.
J'ajoute que cette macro est inspirée d'une intervention que Laurent
Longre a faite en son temps sur le forum "Excel".
Philippe
"Apitos" <apitos@gmail.com> a écrit dans le message de news:
1160915138.374929.299990@h48g2000cwc.googlegroups.com...
Bonjour,
Dans un UserForm ajouté à un document Word, j'aimerais mettre en
condition un groupe de mes contrôls Texbox qui n'acceptent que des
valeurs positifs entiers, et d'autres n'acceptent que des nombres
fractionnés positifs.
J'ai fait cette procedure, pour controler la saise dans un seul
TextBox, mais pas encore arriver :
Private Sub TextBox2_Change()
If Not IsNumeric(TextBox2) And Right(TextBox2, TextBox2.SelStart, 1)
<> "," Then
If Not IsEmpty(TextBox2) Then
TextBox2 = Left(TextBox2, Len(TextBox2) - 1)
End If
End If
End Sub
Ca veut dire que si le caractere tapé n'est pas un numéro ou une
virgule, alors rien n'est ecrit dans le TextBox2.
Pour le deuxieme point, j'aimerais d'une façon générale trouver une
solution pour controler mes deux groupes au lieu de taper chaque fois
une procedure à chaque controle :
Groupe 1 : Entier positifs :
Private Sub TextBoxX_Change()
If Not IsNumeric(TextBoxX) Then
If Not IsEmpty(TextBoxX) Then
TextBox2 = Left(TextBoxX, Len(TextBoxX) - 1)
End If
End If
End Sub
Groupe 2 : Nombres Fractionés :
Private Sub TextBoxX_Change()
If Not IsNumeric(TextBoxX) And Right(TextBoxX, TextBoxX.SelStart, 1)
<> "," Then
If Not IsEmpty(TextBoxX) Then
TextBox2 = Left(TextBoxX, Len(TextBoxX) - 1)
End If
End If
End Sub
Bonjour Apitos, Pour ton cas, il me semble qu'il vaut mieux passer par un module de classe. Un exemple ici http://cjoint.com/?kpr1PowKBR J'ai placé un "I" dans la propriété 'Tag' des 'textbox' dont je voulais avoir un entier. Sans "I", il est possible d'ajouter un '.' pour la décimale. (pour la virgule) il suffit d'adapter. J'ajoute que cette macro est inspirée d'une intervention que Laurent Longre a faite en son temps sur le forum "Excel". Philippe
"Apitos" a écrit dans le message de news:
Bonjour,
Dans un UserForm ajouté à un document Word, j'aimerais mettre en condition un groupe de mes contrôls Texbox qui n'acceptent que des valeurs positifs entiers, et d'autres n'acceptent que des nombres fractionnés positifs.
J'ai fait cette procedure, pour controler la saise dans un seul TextBox, mais pas encore arriver :
Private Sub TextBox2_Change() If Not IsNumeric(TextBox2) And Right(TextBox2, TextBox2.SelStart, 1) <> "," Then If Not IsEmpty(TextBox2) Then TextBox2 = Left(TextBox2, Len(TextBox2) - 1) End If End If End Sub
Ca veut dire que si le caractere tapé n'est pas un numéro ou une virgule, alors rien n'est ecrit dans le TextBox2.
Pour le deuxieme point, j'aimerais d'une façon générale trouver une solution pour controler mes deux groupes au lieu de taper chaque fois une procedure à chaque controle :
Groupe 1 : Entier positifs :
Private Sub TextBoxX_Change() If Not IsNumeric(TextBoxX) Then If Not IsEmpty(TextBoxX) Then TextBox2 = Left(TextBoxX, Len(TextBoxX) - 1) End If End If End Sub
Groupe 2 : Nombres Fractionés :
Private Sub TextBoxX_Change() If Not IsNumeric(TextBoxX) And Right(TextBoxX, TextBoxX.SelStart, 1) <> "," Then If Not IsEmpty(TextBoxX) Then TextBox2 = Left(TextBoxX, Len(TextBoxX) - 1) End If End If End Sub