Bonjour,
Je voudrais autoriser, dans une TextBox, la saisie de seulement des lettres d'alphabet (sans accent) et d'un espace.
Pouvez vous m'aider svp pour interdir tous les autres caractères?
Merci
Version imprimable
Bonjour,
Je voudrais autoriser, dans une TextBox, la saisie de seulement des lettres d'alphabet (sans accent) et d'un espace.
Pouvez vous m'aider svp pour interdir tous les autres caractères?
Merci
Bonjour,
Regarde cette réponse de l'ami Fring (cela remonte déjà à quelques temps...)
dans cette discussion
2 compléments
Valeurs des Keycode
Pour une conversion sans accent
ou bienCode:
1
2
3
4
5
6
7
8
9
10 Function ch_sans_accent(ch_characters As Range) liste_accents = "ÉÈÊËÔéèêëàçùôûïî" liste_sans_accents = "EEEEOeeeeacuouii" tempo = ch_characters.Value For i = 1 To Len(tempo) s = InStr(liste_accents, Mid(tempo, i, 1)) If s > 0 Then Mid(tempo, i, 1) = Mid(liste_sans_accents, s, 1) Next ch_sans_accent = tempo End Function
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 Function Sans_accents(Chaine As String) As String Dim avec_acc As String, sans_acc As String avec_acc = "ÀÁÂÃÄÅÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝàáâãäåèéêëìíîïðñòóôõöùúûüýÿ" sans_acc = "AAAAAAEEEEIIIINOOOOOUUUUYaaaaaaeeeeiiiionooooouuuuyy" Chaine = Replace(Replace(Replace(Replace(Chaine, "", "oe"), "", "OE"), "æ", "ae"), "Æ", "AE") Dim i As Byte, u As Byte For i = 1 To Len(Chaine) u = InStr(1, avec_acc, Mid(Chaine, i, 1), 0) If u > 0 Then Mid(Chaine, i, 1) = Mid(sans_acc, u, 1) Next i Sans_accents = Chaine End Function
J'ai oublié de préciser que la saisie de chiffre ne me pose pas de problème.
c'est plus les tiret, les accents... qui me pose problème
J'ai complété ma proposition par 2 compléments (voir mon 1er post)
Bonjour
ceci permettra de n'accepter que des lettres non accentuées et des chiffres, tout en gardant disponibles ce qui doit l'être (enter, tab, flèches directionnelles, suppr, etc ..)
EDIT : j'avais oublié le tiret -->> ajoutéCode:
1
2
3
4
5
6
7 Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) Select Case KeyCode Case 32, 48 To 57, 65 To 90, 97 To 122, 8, 37 To 40, 46, 13, 9, 54 Case Else KeyCode = 0 End Select End Sub
C'est bien le sens de ma réponse, non?
Salut Maarcel
Tout-à-fait.
Au fait : inutile d'aller bien loin pour découvrir les codes des touches. Il est à la rubrique Constantes de code de touches
de l'aide interne VBA
Salut Unparia,
OK. Merci pour cette indication.