Bonjour, j'ai un gros souci dans mon programme.
Je dois tester une chaîne de caractères et interdire tous les caractères spéciaux sauf les "-" donc voici mon code, certe un peu maladroit, mais je me prends la tête dessus depuis un moment!!!!
P.S: J'utilise la valeur "true" ou "false" dans mon programme pour mettre une alarme si il y a présence d'un caractères interdit.
Voilà:
Function RefValide(Ref As String) As Boolean
RefValide = True 'initilaisation
If Len(Ref) > 25 Then RefValide = False 'si plus de 25 caractères
If Ref Like "*? ?*" Then RefValide = False 'si contient des expaces
For n = 1 To Len(Ref) 'début du tests caractères par caractères
If Asc(Mid(Ref, n, 1)) < 48 Or Asc(Mid(Ref, n, 1)) > 57 Then RefValide = False 'si pas des chiffres
If Asc(Mid(Ref, n, 1)) = 45 Then RefValide = True 'si "-" c'est bon
If Asc(Mid(Ref, n, 1)) < 65 Or Asc(Mid(Ref, n, 1)) > 90 Then RefValide = False 'si pas des lettres
If Asc(Mid(Ref, n, 1)) < 97 Or Asc(Mid(Ref, n, 1)) > 122 Then RefValide = flase 'si pas des lettres
If Asc(Mid(Ref, n, 1)) > 122 Then RefValide = False 'si autre choses que lettres et chiffre
Next n
End Function
Je dois tester une chaîne de caractères et interdire tous les caractères spéciaux sauf les "-" donc voici mon code, certe un peu maladroit, mais je me prends la tête dessus depuis un moment!!!!
P.S: J'utilise la valeur "true" ou "false" dans mon programme pour mettre une alarme si il y a présence d'un caractères interdit.
Voilà:
Function RefValide(Ref As String) As Boolean
RefValide = True 'initilaisation
If Len(Ref) > 25 Then RefValide = False 'si plus de 25 caractères
If Ref Like "*? ?*" Then RefValide = False 'si contient des expaces
For n = 1 To Len(Ref) 'début du tests caractères par caractères
If Asc(Mid(Ref, n, 1)) < 48 Or Asc(Mid(Ref, n, 1)) > 57 Then RefValide = False 'si pas des chiffres
If Asc(Mid(Ref, n, 1)) = 45 Then RefValide = True 'si "-" c'est bon
If Asc(Mid(Ref, n, 1)) < 65 Or Asc(Mid(Ref, n, 1)) > 90 Then RefValide = False 'si pas des lettres
If Asc(Mid(Ref, n, 1)) < 97 Or Asc(Mid(Ref, n, 1)) > 122 Then RefValide = flase 'si pas des lettres
If Asc(Mid(Ref, n, 1)) > 122 Then RefValide = False 'si autre choses que lettres et chiffre
Next n
End Function