Que des lettres

Résolu
ploki122 Messages postés 48 Date d'inscription mercredi 21 septembre 2005 Statut Membre Dernière intervention 20 décembre 2005 - 20 oct. 2005 à 23:29
ploki122 Messages postés 48 Date d'inscription mercredi 21 septembre 2005 Statut Membre Dernière intervention 20 décembre 2005 - 21 oct. 2005 à 03:43
est-il possible de dire quelque chose du genre:

if TxtChose.text<>lettres then
...

ou lettres n'est pas une variable mais plutôt toute lettres confondues. (accentué, minuscule, majuscule, etc...)

merci a l'avance Ploki122

10 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
21 oct. 2005 à 01:46
j'en étais sûr.....

attention, çà n'empêche pas le copier/coller.
et en poussant, il peut saisir aussi .,? etc....

Private Sub Text1_KeyPress(KeyAscii As Integer)
If IsNumeric(Chr(KeyAscii)) Then KeyAscii = 0
End Sub

si çà ne change rien d'afficher tout en minuscule, alors il suffit de tester ainsi :

Private Sub Text1_KeyPress(KeyAscii As Integer)
KeyAscii = Asc(LCase(Chr(KeyAscii)))
If ((KeyAscii < 97 Or KeyAscii > 122) And _
KeyAscii <> 8 And KeyAscii <> 32 And KeyAscii <> 224 And _
KeyAscii <> 231 And KeyAscii <> 232 And KeyAscii <> 233) _
Then KeyAscii = 0
End Sub

là tu as toutes les lettres normales, [espace], é è ç à, et la touche effacer.
à toi de tester par un simple MsgBox KeyAscii pour trouver lesquelles autres tu veux interdir

++
PCPT [AFCK]
3
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
20 oct. 2005 à 23:53
BONSOIR....

oui, on peut, par ordre d'élimination, caractère par caractère....

voici une solution, mais mon p'tit doigt me dit que tu t'y prends mal....
si c'est par exemple pour empêcher la saisie numérique simplement, on en reparlera...

voici l'exemple VB6


Dim TabNonLettre(9) As String
'
'
Private Sub Form_Load()
TabNonLettre(0) = "0"
TabNonLettre(1) = "1"
TabNonLettre(2) = "2"
TabNonLettre(3) = "3"
TabNonLettre(4) = "4"
TabNonLettre(5) = "5"
TabNonLettre(6) = "6"
TabNonLettre(7) = "7"
TabNonLettre(8) = "8"
TabNonLettre(9) = "9"
End Sub
'
'
Private Sub Command1_Click()
If TxtChose.Text = "" Then
MsgBox "Txt vide", 32
Exit Sub
Else
Dim i As Integer, t As Integer, bLettre As Boolean
bLettre = True
For i = 1 To Len (TxtChose.Text)
For t = 0 To UBound(TabNonLettre) If Mid(TxtChose.Text, i, 1) TabNonLettre(t) Then bLettre False: GoTo FIN
Next t
Next i
End If
FIN:
If bLettre Then
MsgBox "Aucun caractère du tableau n'est dans la TxtBox", 32
Else
MsgBox "Correspondance !!!", vbCritical, "Dommage..."
End If
End Sub

'si le but est juste de 0 à 9, on peut remplacer
For t = 0 To UBound (TabNonLettre) If Mid(TxtChose.Text, i, 1) TabNonLettre(t) Then bLettre False: GoTo FIN
Next t
'par
For t = 0 To 9 If Mid (TxtChose.Text, i, 1) <gras>CStr(i) Then bLettre</gras> False: GoTo FIN
Next t
'et ne pas déclarer ni initialiser TabNonLettre()

'l'intérêt du tableau est de pouvoir ajouter facilement
'des caractères, genre / * . = etc...



<SMALL> Coloration syntaxique automatique [AFCK]</SMALL>


++
PCPT [AFCK]
0
P__ROMEO Messages postés 294 Date d'inscription vendredi 25 février 2005 Statut Membre Dernière intervention 9 mars 2006 1
20 oct. 2005 à 23:56
JE NE sais pas si j'ai bien compri.
tu veux savoir si ce que tu tape est numérique ou non numérique?
voici un code qui vérifie si dans le champ text, que j'ai appelé ici Text1, si tu rentres que les chiffres.
dans ce cas, si tu rentres une lettre, quelqu'elle soit, la lettre ne sera pas prise en compte. et il ya Beep pour remarquer cela.

rien de spécial.
j'espère que ca répond a ta question.
si non, repose clairement

Private Sub Text1_KeyPress(KeyAscii As MSForms.ReturnInteger)

' Contrôle la validité de la saisie (seul les chiffres passent)
If (KeyAscii < Asc("0") Or KeyAscii > Asc("9")) And KeyAscii <> 8 Then

Fau:
Beep
' Erreur : supprime le caractère
KeyAscii = 0
End If
Fin:
End Sub
0
P__ROMEO Messages postés 294 Date d'inscription vendredi 25 février 2005 Statut Membre Dernière intervention 9 mars 2006 1
21 oct. 2005 à 00:04
Comme d'habitude, pcpt passes devant moi.
je n'avais pas rafraichi.
Bonsoir Pcpt, et Ploki
Pour ce que tu as dit:
si c'est par exemple pour empêcher la saisie numérique simplement, on en reparlera...

j'ai déja donné une manière de faire.

Mais, ici, "Fin:" devait être en commentaire " 'Fin " Même si il ne derrange pas ici, il ne sert a rien en etiquette.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
21 oct. 2005 à 00:29
rebonsoir P_Romeo

désolé de souvent te devancer, c'est involontaire^^

pour ton code, je crois que Ploki veut l'inverse (interdire la saisie numérique), donc ton code est très facilement adaptable.

pour le paramètre par contre? MSForms.ReturnInteger ?? tu es en .net? VBA ? ou un composant Form2 ?
(juste par curiosité, çà ne change rien...)

et pour l'étiquette Fin: , je précise juste à Ploki que P_Romoe parlait de la sienne, qui en effet n'est pas appelée.
la mienne quant à elle, du même nom, permet de sortir de la boucle dès le "caractère interdit" trouvé.
si le texte est "0blabla", inutile tout vérifier, l'erreur existe déjà...

voilà @+
PCPT [AFCK]
0
ploki122 Messages postés 48 Date d'inscription mercredi 21 septembre 2005 Statut Membre Dernière intervention 20 décembre 2005
21 oct. 2005 à 00:50
ok je m'était mal expliquer, voila tout : je fais un bonhomme pendu et j'aimerais que lorsqu'il m'écrit un caratère "non-lettrique", une erreur s'affiche
0
P__ROMEO Messages postés 294 Date d'inscription vendredi 25 février 2005 Statut Membre Dernière intervention 9 mars 2006 1
21 oct. 2005 à 02:10
Pcpt>> j'utilsises le Composant Form2
et confirme tes mots qand à "Fin".

je pense que ta réponse n'est pas assez claire.
le gris n'est pas trop visible sur le blanc (Lol)

Ploki>> tu es entre de bonne mains.

mais, pcpt, tu veilles trop ces temps ci. je lis certains de tes messages, ils datent de l'aube. ne grilles pas tous tes neurones. gardes en pour les travaux professionel (et un peu pour si j'ai un problème) :)
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
21 oct. 2005 à 02:21
t'en fais pas, je fais plusieurs trucs à la fois^^.
je paufine 2 3 bricoles et je vais peut-être poster ce soir...
gestion d'erreurs, des interessés

(mais merci de t'inquiéter de ma petite santé)

[AFCK]
0
P__ROMEO Messages postés 294 Date d'inscription vendredi 25 février 2005 Statut Membre Dernière intervention 9 mars 2006 1
21 oct. 2005 à 02:33
bien sur qu'il ya des interessés.
Ploki dors surement en se moment. sa sera pour demain la cloture de se topic.
Bonne programmation pour tes bricoles
et bonne continuation, pour ton prochain poste.

A+
0
ploki122 Messages postés 48 Date d'inscription mercredi 21 septembre 2005 Statut Membre Dernière intervention 20 décembre 2005
21 oct. 2005 à 03:43
hé bien non, je ne dors pas et selon moi l'heure est tt a fait raisonnable (21h41 chez nous)

Et merci encore PCPT sur mes 5 question(je crois), tu en a répondu 4. merci encore
0
Rejoignez-nous