Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Masque de saisie dans une textbox d'userform

7 réponses
Avatar
JP
Bonjour,

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

Merci pour les conseils.

JP

7 réponses

Avatar
DanielCo
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
Avatar
JP
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
Avatar
Jacky
Bonjour,
Exemple simple ici
http://cjoint.com/?CKxnefLkWxI

--
Salutations
JJ


"JP" a écrit dans le message de news:

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
Avatar
DanielCo
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
Avatar
JP
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
Avatar
MichD
Bonjour,

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

http://cjoint.com/?CKxuQRpiR9f

;-)

MichD
---------------------------------------------------------------
Avatar
JP
Salut Denis,

Tu es un marrant toi ;-)
Je regarde demain

Merci

JP