Textbox [Résolu]

Sinsitrus 863 Messages postés samedi 11 juin 2005Date d'inscription 21 août 2015 Dernière intervention - 4 juin 2008 à 10:45 - Dernière réponse : Sinsitrus 863 Messages postés samedi 11 juin 2005Date d'inscription 21 août 2015 Dernière intervention
- 4 juin 2008 à 15:52
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 !
Afficher la suite 

Votre réponse

11 réponses

Meilleure réponse
cs_Exploreur 4824 Messages postés lundi 11 novembre 2002Date d'inscription 15 novembre 2016 Dernière intervention - 4 juin 2008 à 14:01
3
Merci
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

Merci cs_Exploreur 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de cs_Exploreur
Sinsitrus 863 Messages postés samedi 11 juin 2005Date d'inscription 21 août 2015 Dernière intervention - 4 juin 2008 à 10:54
0
Merci
Sans espace dsl :









XXXXX-XXXXX





-





XXXXX





-





XXXXX





-





XXXXX
Commenter la réponse de Sinsitrus
cs_sylvain230 67 Messages postés mardi 5 décembre 2000Date d'inscription 5 juillet 2010 Dernière intervention - 4 juin 2008 à 11:00
0
Merci
tu pourrais pas créer 5 zones de textes ?
Commenter la réponse de cs_sylvain230
lillith212 1231 Messages postés vendredi 16 novembre 2007Date d'inscription 16 juin 2009 Dernière intervention - 4 juin 2008 à 11:05
0
Merci
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...
---------------------------------------------------------------
Commenter la réponse de lillith212
cs_Exploreur 4824 Messages postés lundi 11 novembre 2002Date d'inscription 15 novembre 2016 Dernière intervention - 4 juin 2008 à 11:10
0
Merci
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
Commenter la réponse de cs_Exploreur
gillardg 3288 Messages postés jeudi 3 avril 2008Date d'inscription 14 septembre 2014 Dernière intervention - 4 juin 2008 à 11:29
0
Merci
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"
Commenter la réponse de gillardg
Sinsitrus 863 Messages postés samedi 11 juin 2005Date d'inscription 21 août 2015 Dernière intervention - 4 juin 2008 à 12:35
0
Merci
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
Commenter la réponse de Sinsitrus
Sinsitrus 863 Messages postés samedi 11 juin 2005Date d'inscription 21 août 2015 Dernière intervention - 4 juin 2008 à 13:02
0
Merci
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 !
Commenter la réponse de Sinsitrus
cs_Exploreur 4824 Messages postés lundi 11 novembre 2002Date d'inscription 15 novembre 2016 Dernière intervention - 4 juin 2008 à 13:45
0
Merci
lol...car le premier carractère n'est pas encore validé dans le KeyPress ^^

A+
Exploreur

 Linux a un noyau, Windows un pépin
Commenter la réponse de cs_Exploreur
Sinsitrus 863 Messages postés samedi 11 juin 2005Date d'inscription 21 août 2015 Dernière intervention - 4 juin 2008 à 13:59
0
Merci
^o)
Commenter la réponse de Sinsitrus
Sinsitrus 863 Messages postés samedi 11 juin 2005Date d'inscription 21 août 2015 Dernière intervention - 4 juin 2008 à 15:52
0
Merci
Salut !

Merci Exploreur ^^
Commenter la réponse de Sinsitrus

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.