[VBA] Vérifier chaque caractère d'une chaine

Bonjour à toutes et tous, et meilleurs voeux pour cette nouvelle année !

J'ai besoin de vos lumières pour corriger une petite macro toute simple que j'ai écrit pour vérifier des chaines de caractères :

Alors le but de la Macro c'est : Vérifier si toutes les cellules d'une plage donnée respectent bien une règle simple : Elles ne doivent comprendre de caractères autres que des lettres de l'alphabet (minuscule ou majuscule), des chiffres, ou un Underscore.

J'ai donc fait le code suivant :

Sub Verification_chaque_charactere()

Dim cell As Range
Dim index As Integer
Dim char As String

For Each cell In Range("A1:A10")
    For index = 1 To Len(cell)
        char = cell.Characters(index, 1).Text
        If Not char Like "[0-9a-zA-Z_]" Then
            MsgBox cell.Address(0, 0) & " : " & cell
            Exit For
        End If
    Next index
Next cell

End Sub

Cette macro fonctionne bien sauf s'il y a une cellule contenant un nombre, elle plante avec l'erreur d'exécution 1004 : Impossible de lire la propriété Text de la classe Characters.

Je ne souhaite pas contourner le problème en rajoutant par exemple une vérification "If isnumeric(cell)...", car j'aimerai pouvoir réutiliser cette macro dans d'autres applications en ne modifiant que le "Like" si mes critères de vérifications changent.

La question est donc, comment extraire un caractère d'une cellule contenant un nombre ?

Bonjour,

Et de cette façon ?

Sub Verification_chaque_charactere()

    Dim Cel As Range
    Dim I As Integer
    Dim char As String

    For Each Cel In Range("A1:A10")

        For I = 1 To Len(Cel)

            char = Mid(Cel, I, 1)

            If Not char Like "[0-9 a-z A-Z_]" Then

                MsgBox Cel.Address(0, 0) & " : " & Cel

                Exit For

            End If

        Next I

    Next Cel

End Sub

Hervé.

Bonjour Theze,

et merci pour la proposition, ça marche nickel !

Rechercher des sujets similaires à "vba verifier chaque caractere chaine"