Probleme de règle de gestion en vb

[Résolu/Fermé]
Signaler
Messages postés
140
Date d'inscription
vendredi 5 septembre 2003
Statut
Membre
Dernière intervention
7 avril 2016
-
Messages postés
140
Date d'inscription
vendredi 5 septembre 2003
Statut
Membre
Dernière intervention
7 avril 2016
-
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"

3 réponses


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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 42854 internautes nous ont dit merci ce mois-ci

Messages postés
140
Date d'inscription
vendredi 5 septembre 2003
Statut
Membre
Dernière intervention
7 avril 2016
33
Arsène : tu es grand!!!!!!!!
ça marche parfaitement

je te remercie à+
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 520
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 é ?
Messages postés
140
Date d'inscription
vendredi 5 septembre 2003
Statut
Membre
Dernière intervention
7 avril 2016
33
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 à +
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.