Description #
Cette fonction permet de vérifier qu’un champ, (ou une variable) ne contient pas de caractères spéciaux, susceptibles d’entraver un calcul ou le fonctionnement de votre macro.
Un exemple d’utilisation est de vérifier que le nom de fichier fournit par l’utilisateur ne contient aucun caractère susceptible d’engendrer un problème d’enregistrement.
Code #
Sub Control_Format()
‘controle le format des cellules dans la colonne B
Dim Cel As Range, j As Integer
Dim CodeAscii As Integer, LCel As Integer
Dim NonAscii As Boolean
With ActiveSheet
For Each Cel In Range(« B2 », Range(« B65536 »).End(xlUp))
LCel = Len(Cel.Value)
For j = 1 To LCel
CodeAscii = AscW(Mid(Cel.Value, j))
Select Case CodeAscii
Case 97 To 122 ‘ Caracteres minuscule
Case 65 To 90 ‘Caracteres majuscule
Case 95 ‘caractères tiret bas
Case 32 ‘ espace
Case 45 To 46 ‘caractères – et .
Case 48 To 57 ‘nombre de 0 à 9
Case Else
NonAscii = True
End Select
If NonAscii = True Then MsgBox « Vous avez des caractères illégaux dans vos noms, veuillez corriger et recommencer » & vbNewLine & Cel.Value & » contient » & Chr(CodeAscii): Exit Sub
Next j
Next Cel
End With
End Sub
Commentaires #
Par caractères spéciaux, il faut comprendre tout type de caractère de type : # ! $ £ » & / – _ etc, pour ne citer que quelques exemples courants.
Accès à la liste complète des codes ASCII : Cliquer ici