Textbox [Résolu]

Signaler
Messages postés
855
Date d'inscription
samedi 11 juin 2005
Statut
Membre
Dernière intervention
21 août 2015
-
Messages postés
855
Date d'inscription
samedi 11 juin 2005
Statut
Membre
Dernière intervention
21 août 2015
-
Salut !

Je voudrais que dans un textbox, quand je met 5 lettres ou chiffre, un tiret se met automatiquement.
C'est en fait pour effectuer un code d'activation.

XXXXX-XXXXX





-





XXXXX





-





XXXXX





-





XXXXX

En fait, tout au long du code, tant que les caractère ateignent 5, un tiret se met au sixième et nous avons 25 caractère plus les 4 tirets.

Pouvez vous m'aider svp ?
Merci d'avance

----------
OS        : Windows XP SP2
Platforme : VB 6.0 + SP6

Ok VB6.0 c'est pas net !

11 réponses

Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
14
re,

Bon c'est de la bidouille mais cela fonctionne comme tu veux ^^

Private Sub Text1_KeyPress(KeyAscii As Integer)


Static iNbChar As Integer
Static sChaine As String


If KeyAscii = 8 Then Exit Sub


sChaine = sChaine & Chr(KeyAscii)
iNbChar = iNbChar + 1




If iNbChar = 5 Then
   KeyAscii = 0
   Text1.Text = sChaine & "-"
   sChaine = sChaine & "-"
   Text1.SelStart = Len(Text1.Text)
   iNbChar = 0
End If


End Sub


A+
Exploreur

 Linux a un noyau, Windows un pépin
Messages postés
855
Date d'inscription
samedi 11 juin 2005
Statut
Membre
Dernière intervention
21 août 2015

Sans espace dsl :









XXXXX-XXXXX





-





XXXXX





-





XXXXX





-





XXXXX
Messages postés
67
Date d'inscription
mardi 5 décembre 2000
Statut
Membre
Dernière intervention
5 juillet 2010

tu pourrais pas créer 5 zones de textes ?
Messages postés
1229
Date d'inscription
vendredi 16 novembre 2007
Statut
Membre
Dernière intervention
16 juin 2009
1
Salut,

Je pense que tu vas devoir traiter ta zone de text à l'aide de la fonction mid
genre :
tu testes la longueur de ta chaine
si elle atteint 5 caracteres alors à la fin de ta chaine tu la concaténes avec un tiret

ou sinon en plus simple tu fait 5 zones de texte que tu bloques à une saisie à 5 et ensuite en traitement tu concatene l'ensemble de type :
dim clé as string
clé = vbnullstring
for i=0 to 4
   clé = clé & textbox1(i).text & "-"
next
Perso je choisirai plus cette deuxieme solution

slb
---------------------------------------------------------------
Il faut beaucoup donner pour recevoir un tout petit peu...
---------------------------------------------------------------
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
14
Salut,

Une autre solution :

Private Sub Text1_KeyPress(KeyAscii As Integer)


Static iNbChar As Integer


iNbChar = iNbChar + 1




If iNbChar = 5 Then
   Text1.Text = Text1.Text & "-"
   Text1.SelStart = Len(Text1.Text)
   iNbChar = 0
End If


End Sub


A+
Exploreur

 Linux a un noyau, Windows un pépin
Messages postés
3275
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
14 septembre 2014
4
bonjour,
MaskedTextBox est peut-être la solution

édite simplement la propriétée mask selon ton désir je crois que ça donnerait :
mTB1.Mask="00000-00000-00000-00000-00000"
Messages postés
855
Date d'inscription
samedi 11 juin 2005
Statut
Membre
Dernière intervention
21 août 2015

Salut !
Merci a tous !

Explorer, j'ai opté pour ta solution, mais il y'a un problème au début, il me met 4 caractères et 1 tiret puis il continue normal juska me donner 1 tiret a la fin :

KQD8-DU9ZQ-OZ6EC-KIZEY-QSJY7-L
Messages postés
855
Date d'inscription
samedi 11 juin 2005
Statut
Membre
Dernière intervention
21 août 2015

Par contre si je met I=1

Static I As Integer
I = I + 1
If I = 5 Then
   Text1.Text = Text1.Text & "-"
   Text1.SelStart = Len(Text1.Text)
   I = 1
End If

Il me met ca :
2132-1321-3213-1321-3213-1313

Ce qui est juste mais j'aurai opté pour les 5 caractères plutot que 4 !
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
14
lol...car le premier carractère n'est pas encore validé dans le KeyPress ^^

A+
Exploreur

 Linux a un noyau, Windows un pépin
Messages postés
855
Date d'inscription
samedi 11 juin 2005
Statut
Membre
Dernière intervention
21 août 2015

^o)
Messages postés
855
Date d'inscription
samedi 11 juin 2005
Statut
Membre
Dernière intervention
21 août 2015

Salut !

Merci Exploreur ^^