Probleme de règle de gestion en vb

Résolu/Fermé
raro Messages postés 140 Date d'inscription vendredi 5 septembre 2003 Statut Membre Dernière intervention 7 avril 2016 - 4 mai 2005 à 13:36
raro Messages postés 140 Date d'inscription vendredi 5 septembre 2003 Statut Membre Dernière intervention 7 avril 2016 - 4 mai 2005 à 21:28
salut à tous!

j'essaie de coder en vb une règle de gestion :" la saisie ne peut comporter que des lettres"
cela fonctionne sauf si la saisie contient une lettre avec un accent
voici mon code:
'verification du type de caractères saisi: alpha obligatoire
'déclaration et initialisation  du pointeur a
Dim a As Integer
a = 0
'pointer a sur toute la longueur de la saisie à partir du premier caractère
For a = 1 To Len(text_prenom.Text)
'si un ou plusieurs caractères saisis sont différents de A à Z alors
If UCase(Trim(Mid(text_prenom.Text, a, 1))) Like "[!A-Z]" Then
'message
MsgBox "la saisie ne peut comporter que des lettres"
'remise à blanc et reprise du focus par text_prenom
text_prenom.Text = ""
text_prenom.SetFocus

'sortir
Exit Sub
'fin de if
End If
'fin de la boucle a
Next a

pouvez-vous m'expliquer ce qui cloche?
merci encore

"Donne un poisson à un homme, il mangera une journée.
Apprends-lui à pêcher, il mangera toute sa vie"
A voir également:

3 réponses

Utilisateur anonyme
4 mai 2005 à 18:54
Salut,

Autre suggestion !

Sub TestEntree()

Const Alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZÉÈÀÙ"

'verification du type de caractères saisi: alpha obligatoire
'déclaration et initialisation du pointeur a
Dim A As Integer
Dim Dum As String
Dim Rep As Long

Dum = "Carac2tère"
A = 0
'pointer a sur toute la longueur de la saisie à partir du premier caractère
For A = 1 To Len(Dum)
'si un ou plusieurs caractères saisis sont différents de A à Z alors
Rep = InStr(1, Alphabet, UCase(Trim(Mid(Dum, A, 1))), vbTextCompare)
If (Rep = 0) Then
'message
MsgBox "la saisie ne peut comporter que des lettres"
'remise à blanc et reprise du focus par text_prenom
Dum = ""

'sortir
Exit Sub
'fin de if
End If
'fin de la boucle a
Next A

End Sub

Lupin
1
raro Messages postés 140 Date d'inscription vendredi 5 septembre 2003 Statut Membre Dernière intervention 7 avril 2016 37
4 mai 2005 à 21:28
Arsène : tu es grand!!!!!!!!
ça marche parfaitement

je te remercie à+
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
4 mai 2005 à 13:39
Salut,

Je suppose que le problème est là:
"[!A-Z]"

Et si tu changes en :
"[!A-Zéèùà]" par exemple... Ca marche si tu tapes é ?
0
raro Messages postés 140 Date d'inscription vendredi 5 septembre 2003 Statut Membre Dernière intervention 7 avril 2016 37
4 mai 2005 à 14:21
hélas non cela ne fonctionne pas mais l'idée n'est pas mauvaise
car [!A-Z] veut dire de A jusqu'à Z et je ne sais pas comment coder pour un caractère spécifique
je te remercie en tout cas à +
0
je ne m y connais pas VB mais tu es dans une condition, essaye d'ajouter à la condition telle que:
If UCase(Trim(Mid(text_prenom.Text, a, 1))) Like "[!A-Z]" and
If Ucase(Trim(Mid(text_prenom.Text, a, 1))) Like "!é". je ne m'y connais pas en syntaxe mais ça devrait ressembler un peu à cela. Fait un test sur un caractère unique.
Le problème vient du fait que les lettres à accent ne sont pas dans l'intervalle donnée.
0