Formatage d'une textbox sous la forme 00 000 000

zephir94

XLDnaute Impliqué
Bonjour à tous,

J'ai un soucis de formatage de saisie d'une textbox, je voudrais que la saisie soit obligatoirement sous la forme :
00 000 000, sauf que j'obtiens 00 000000 !
Voici mon code écrit :

Code:
Private Sub TextBox2_Change()
TextBox2.MaxLength = 10
    Valeur = Len(TextBox2)
    If Valeur = 2 Or Valeur = 3 Then
    TextBox2 = TextBox2 & " "
    End If
End Sub

Pourtant j'écris bien si valeur est égale à 2 ou 3 mettre un espace ! et je prévois bien 10 caractères soit 8 chiffres et deux espaces !

Merci par avance pour vos conseilles
Amicalement
Zephir
 

Roland_M

XLDnaute Barbatruc
re

ce n'est pas possible, j'ai essayé, et ça fonctionne !
voir avec ce classeur, tu te places dans le code de l'userform et tu tapes F5 pour l'exécuter
et tu entres des chiffres et tu verras le format se faire !
 

Pièces jointes

  • Classeur1.xlsm
    11.6 KB · Affichages: 69

zephir94

XLDnaute Impliqué
Merci à toi Roland_M

Je viens de le voir, et cela fonctionne comme dans mon fichier après test de ton code mais le mode de saisie ne me convient pas hélas, la saisie va être déroutante pour celui qui va la taper, en effet visuellement ça fait des paquets qui se réorganises au fur et à mesure .
Merci pour ton aide
 

Roland_M

XLDnaute Barbatruc
re

je ne comprend pas en quoi cela est déroutant !?
ça existe dans beaucoup de saisies particulières !
et la démarche que tu nous montres dans ton premier message c'est exactement ce qui va se passer !?
ou alors il faut que tu traites après saisie complète et pas avec _Change !
enfin c'est toi qui voit !

EDIT: comme ceci, mais ça ne se produira que lorsque tu auras sélectionné un autre contrôle !

Private Sub TextBox2_AfterUpdate()
TextBox2 = Format(TextBox2, "### ### ### ###")
End Sub
 

herve62

XLDnaute Barbatruc
Supporter XLD
Bonjour , Salut Roland
Moi j'ai testé ça en VBA avec une textbox c'est OK , ou alors j'ai pas compris ce qu'il veut ?
TextBox1 = Format(TextBox1, "## ### ###00 000 000")
J'aussi fait AfterUpdate car Change pose Pb !!

PS : Roland j'ai essayé ( il y a 1 mois) de te faire un MP , je n'ai pas le droit de t'écrire ??
 

Roland_M

XLDnaute Barbatruc
Salut hervé !

ben je comprend pas, tu n'est pas le premier à me dire ça !
pourtant j'empêche personne de me joindre !?
il y en a un qui m'a joint récemment donc ça ne devrait pas poser de problème !?
s'il faut créer une liste de tous les noms à accepter ça va pas le faire !
on avait pas se problème avant, tout était plus simple !
 

zephir94

XLDnaute Impliqué
Bonjour à tous,

J'ai trouvé en reprenant le code Dranreb et en l'incérant dans ma prog, merci beaucoup !

Code:
Private Sub TextBox1_Change()
    TextBox1.MaxLength = 10 'nb caractères maxi autorisé dans le textbox
    Valeur = Len(TextBox1)
    If Len(TextBox1.Text) Mod 4 = 2 Then TextBox1.Text = TextBox1.Text & " "
End Sub

La saisie se fait de gauche à droite sans faire des paquets qui se réorganisent au fur et à mesure.

Merci à vous tous
 

Discussions similaires

Statistiques des forums

Discussions
312 174
Messages
2 085 942
Membres
103 053
dernier inscrit
Beubax