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

Autoriser uniquement des lettres dans un textbox

4 réponses
Avatar
Lyssandre
Bonjour a tous,

J'espere vos connaisance sont toujours aussi au point......

je voudrais empecher la saisie de caracteres non lettrés ( ç ; ' , ainsi
que les accents ) dans un textbox , mais il faut que les espaces soient
conservés et que le tout soit compatible avec excel 97.

Faites chauffer les cerveaux.....

Merci d'avance.

4 réponses

Avatar
Vincnet.
Bonjour,
Juste une piste : en faisant une boucle sur les caractères, tu pourrais
vérifier en fonction de leur code ASCII s'ils sont comme tu les veux...

--
A+

V.



Bonjour a tous,

J'espere vos connaisance sont toujours aussi au point......

je voudrais empecher la saisie de caracteres non lettrés ( ç ; ' , ainsi
que les accents ) dans un textbox , mais il faut que les espaces soient
conservés et que le tout soit compatible avec excel 97.

Faites chauffer les cerveaux.....

Merci d'avance.



Avatar
Michel41
Bonjour

Concevoir une macro de validation du texte analysant chaque caractère,
transformant ceux qui doivent l'être (exemple transformer un é en e ?), et
remplaçant chaque caractère à transformer par un caractère conventionnel
(comme _ ou ? ou !) ; la saisie ne sera validée que quand il n'y aura plus
de caractère conventionnel (Do... Loop) en prévoyant quand même une
possibilité d'échapement, si la vérification se fait après l'écriture totale
du texte ! Il faudra aussi forcer la saisie sur un type de Font car il n'y a
pas toujours d'équivalence entre les caractères affichés.... Autre
possibilité, une macro évènementielle peut aussi faire le test après chaque
caractère saisi....

Pour la conversion :
C= true
for i = 1 to Len(Montexte)
Moncaractère = Mid(Montexte,i,1)
<procès d'analyse de ASC(Moncaractère) ou Moncaractère lui même>
Next i

Pour la conversion 3 méthodes
1) Select Case... puis Case avec la conversion proposée (mettre C à False si
cela nécessite la resaisie)
2) Créer 2 chaînes de même longueur (Private Const A1 as String = "..."
....) : la première contient les caractères autorisés et la seconde la même
liste avec les conversions automatiques ; ensuite chaque caractère sera
reconnu par Instr(Malisteautorisée ou A1) et converti dans le caractère
correspondant dans la seconde chaîne (éventuellement le même à quelques
modifications près Malisteconvertie ou A2) ; si Intr() donne 0 alors le
caractère est transformé en caractère conventionnel (? _ !) et la saisie est
reprise
3)La fonction VBA, Switch, est peut être aussi utilisable ?

@+
M41



"Lyssandre" a écrit dans le message de news:
%
Bonjour a tous,

J'espere vos connaisance sont toujours aussi au point......

je voudrais empecher la saisie de caracteres non lettrés ( ç ; ' , ainsi
que les accents ) dans un textbox , mais il faut que les espaces soient
conservés et que le tout soit compatible avec excel 97.

Faites chauffer les cerveaux.....

Merci d'avance.


Avatar
Corona
Bonjour Lyssandre,
Tu peux utiliser l'événenement "KeyPress"
Voici un petit exemple pour n'autoriser que les lettres sans accents
ainsi que l'espace.

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case Asc("a") To Asc("z"), Asc("A") To Asc("Z"), 32 ' 32 = code ascii
de l'espacement
Case Else
KeyAscii = 0: BEEP ' Un beep ou un msgbox ou rien
End Select
End Sub

Philippe

"Lyssandre" a écrit dans le message de news:
%
Bonjour a tous,

J'espere vos connaisance sont toujours aussi au point......

je voudrais empecher la saisie de caracteres non lettrés ( ç ; ' , ainsi
que les accents ) dans un textbox , mais il faut que les espaces soient
conservés et que le tout soit compatible avec excel 97.

Faites chauffer les cerveaux.....

Merci d'avance.


Avatar
Lyssandre
Merci a toi corona pour cette formulation j'y avais pas penser....
kes kon peut etre distrait des fois. lol.

Bonjour Lyssandre,
Tu peux utiliser l'événenement "KeyPress"
Voici un petit exemple pour n'autoriser que les lettres sans accents
ainsi que l'espace.

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case Asc("a") To Asc("z"), Asc("A") To Asc("Z"), 32 ' 32 = code ascii
de l'espacement
Case Else
KeyAscii = 0: BEEP ' Un beep ou un msgbox ou rien
End Select
End Sub

Philippe

"Lyssandre" a écrit dans le message de news:
%

Bonjour a tous,

J'espere vos connaisance sont toujours aussi au point......

je voudrais empecher la saisie de caracteres non lettrés ( ç ; ' , ainsi
que les accents ) dans un textbox , mais il faut que les espaces soient
conservés et que le tout soit compatible avec excel 97.

Faites chauffer les cerveaux.....

Merci d'avance.