Masque de saisie dans une textbox d'userform

Le
JP
Bonjour,

Dans une textbox de mon userform, je voudrais mettre un masque de saisie.
Le masque devrait être une lettre, un chiffre, une lettre et un chiffre.
Genre: A1D4
De plus, je voudrais limiter les lettres de A à F et les chiffres de 1 =
à 4.

Merci pour les conseils.

JP
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
DanielCo
Le #25810382
Bonjour,
Tu peux contrôler la saisie caractère par caractère en temps réel avec
l'évènement TextBox_Change.
Cordialement.
Daniel


Bonjour,

Dans une textbox de mon userform, je voudrais mettre un masque de saisie.
Le masque devrait être une lettre, un chiffre, une lettre et un chiffre.
Genre: A1D4
De plus, je voudrais limiter les lettres de A à F et les chiffres de 1 à 4.

Merci pour les conseils.

JP
JP
Le #25810622
Bonjour Daniel,

J'ai essayé avec un macro textbox_change mais ça ne donne rien.

Private Sub TextBox2_Change()
If TextBox2.Value = Chr(65) Or TextBox2.Value = Chr(66) Then
'ElseIf TextBox2.Value = Chr(49) Then
End If
End Sub

J'ai aussi essayé avec l'événement Keypress mais là encore rien de très bon.
Si je laisse seul l'un ou l'autre des tests je n'ai pas d'erreur.


Private Sub TextBox2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If InStr("ABCD", Chr(KeyAscii)) = 0 Then
KeyAscii = 0
'ElseIf Not IsNumeric(Chr(KeyAscii)) Then
'KeyAscii = 0
End If

Peux-tu me donner un exemple pour m'aider.

Merci

JP
Jacky
Le #25810952
Bonjour,
Exemple simple ici
http://cjoint.com/?CKxnefLkWxI

--
Salutations
JJ


"JP"
Bonjour,

Dans une textbox de mon userform, je voudrais mettre un masque de saisie.
Le masque devrait être une lettre, un chiffre, une lettre et un chiffre.
Genre: A1D4
De plus, je voudrais limiter les lettres de A à F et les chiffres de 1 à 4.

Merci pour les conseils.

JP
DanielCo
Le #25810942
Bonjour Daniel,

J'ai essayé avec un macro textbox_change mais ça ne donne rien.

Private Sub TextBox2_Change()
If TextBox2.Value = Chr(65) Or TextBox2.Value = Chr(66) Then
'ElseIf TextBox2.Value = Chr(49) Then
End If
End Sub

J'ai aussi essayé avec l'événement Keypress mais là encore rien de très bon.
Si je laisse seul l'un ou l'autre des tests je n'ai pas d'erreur.


Private Sub TextBox2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If InStr("ABCD", Chr(KeyAscii)) = 0 Then
KeyAscii = 0
'ElseIf Not IsNumeric(Chr(KeyAscii)) Then
'KeyAscii = 0
End If

Peux-tu me donner un exemple pour m'aider.

Merci

JP



Private Sub TextBox2_Change()
Select Case Len(Me.TextBox2.Text)
Case 1, 3
If Right(Me.TextBox2.Text, 1) > Chr(70) Or
Right(Me.TextBox2.Text, 1) < Chr(65) Then
MsgBox "Saisie incorrecte"
Me.TextBox2.Text = Left(Me.TextBox2, Len(Me.TextBox2) -
1)
End If
Case 2, 4
If Right(Me.TextBox2.Text, 1) > Chr(52) Or
Right(Me.TextBox2.Text, 1) < Chr(49) Then
MsgBox "Saisie incorrecte"
Me.TextBox2.Text = Left(Me.TextBox2, Len(Me.TextBox2) -
1)
End If
Case Else
MsgBox "Saisie incorrecte"
Me.TextBox2.Text = Left(Me.TextBox2, Len(Me.TextBox2) - 1)
End Select
End Sub

Daniel
JP
Le #25811102
Jacky, Daniel,
Je viens de tester les deux codes.
La solution de Jacky est peut être un peu plus facile à adapter avec la ligne:
Const TouchePermise = "1234ABCDEFabcdef"

Merci à vous deux!

JP
MichD
Le #25812532
Bonjour,

Maintenant que tu sais faire simple, on peut
compliquer la tâche un peu plus!

http://cjoint.com/?CKxuQRpiR9f

;-)

MichD
---------------------------------------------------------------
JP
Le #25813362
Salut Denis,

Tu es un marrant toi ;-)
Je regarde demain

Merci

JP
Publicité
Poster une réponse
Anonyme