Pre-formate un textbox avec un texte déterminé pour entrer une valeur à la suite de ce texte

Soyez le premier à donner votre avis sur cette source.

Snippet vu 3 793 fois - Téléchargée 31 fois

Contenu du snippet

Débutant novice en VB, je récupère régulièrement et honteusement les idées des autres sur ce site, en strict consommateur des gestations laborieuses des génies du VB. Alors, subitement, un source mûrement réfléchi a jailli de mes réflexions. Je ne sais pas s’il existe sur le site (si oui, désolé … si non : chouette, j’ai enfin trouvé quelque chose !). Il s’agit de pré formater un textBox afin d’y inscrire une valeur à la suite d’un texte prédéfini.
Sur une forme mettez un textBox nommé Text1
Puis inscrivez le code suivant dans la form :

Source / Exemple :


Private Sub Text1_Click()

'Formate le textBox avec le mot "Période"
    If Text1.SelStart < 7 Then
    Text1.Text = "Période" & " "
    Text1.SelStart = Text1.SelStart + 8
    End If

End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)

' Inscrit le mot "période" dans le textbox
' et force le curseur après l'espace
    If Text1.SelStart < 9 Then
    Text1.Text = "Période" & " "
    Text1.SelStart = Text1.SelStart + 8
    End If
' Autorise le retour arrière et Force les caratères numériques
    If KeyAscii = 8 Then
    KeyAscii = 8
    ElseIf Chr(KeyAscii) < "0" Or Chr(KeyAscii) > "9" Then
    KeyAscii = 0
    End If

End Sub

Conclusion :


Bon, je sais, ca ne révolutionnera pas la programmation française, mais néanmoins, si ca existe déjà ... Faites moi plaisir ... ne me le dites pas ;-) Je continuerai à croire que je suis un génie! ;-)

A voir également

Ajouter un commentaire Commentaires
cs_rv84
Messages postés
6
Date d'inscription
mercredi 16 avril 2003
Statut
Membre
Dernière intervention
25 novembre 2003

25 nov. 2003 à 22:04
Ah ben oui, ca marche impec. Merci.
Renfield
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
24 nov. 2003 à 23:21
il te suffirait de :

Private Sub Text1_Click()
If Text1.SelStart < 8 Then Text1.SelStart = 8
End Sub
cs_rv84
Messages postés
6
Date d'inscription
mercredi 16 avril 2003
Statut
Membre
Dernière intervention
25 novembre 2003

24 nov. 2003 à 18:54
ah ben oui hein! j'ai dit que j'étais débutant novice. Merci infiniment. Ceci dit, j'ai encore besoin d'explication : comment faire pour que, si je clique dans le textbox, le curseur ne puisse se retrouver au milieu du mot, mais toujours à la fin plus l'espace ? Sinon, le got focus, c'est une chouette idée. Merci.
Renfield
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
24 nov. 2003 à 09:45
Pas mal....

Pour faire EXACTEMENT la même chose, on aurait pu écrire :

Private Sub Text1_GotFocus()
If Not Text1.Text Like "Période *" Then Text1.Text = "Période "
If Text1.SelStart < 8 Then Text1.SelStart = 8
End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 8 Then
If Text1.SelStart <8 Then KeyAscii 0
ElseIf KeyAscii < Asc("0") Or KeyAscii > Asc("9") Then
KeyAscii = 0
End If
End Sub

'****************************************************

bien sur, il manque encore certaines choses, comme verifier le "Format" de ce que l'on affecte par le code : si je fais Text1.text = "coucou" , ca ne respecte pas le "masque" que tu as definis.

d'autre part, tu ne bloques le presse papiers.... tu autorise le Retour Chariot (8) mais tu bloque le Copier (3) et le couper (23) et le coller(22)

j'ai fait une modification dans ton code, car il etait assez deplaisant de perdre ce que l'on tape, chaque fois que l'on clique dans le textbox...

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.