Probleme de règle de gestion en vb
Résolu
raro
Messages postés
146
Statut
Membre
-
raro Messages postés 146 Statut Membre -
raro Messages postés 146 Statut Membre -
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:
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"
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:
- Probleme de règle de gestion en vb
- Regle telephone - Guide
- Gestion de fichiers - Télécharger - Gestion de fichiers
- Logiciel gestion locative gratuit excel - Télécharger - Comptabilité & Facturation
- Logiciel gestion photo gratuit - Guide
- Vb - Télécharger - Langages
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
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
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 é ?
Je suppose que le problème est là:
"[!A-Z]"
Et si tu changes en :
"[!A-Zéèùà]" par exemple... Ca marche si tu tapes é ?
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.
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.
ça marche parfaitement
je te remercie à+