+41(0)79 606 2770 info@agica.ch
View Categories

Exclure caractères spéciaux (ASCII)


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

Source externe #