Trouver des caractères spéciaux dans une colonne --> solution

tkd2009

XLDnaute Nouveau
Bonjour,
j'ai eu énormément de mal à trouver des infos sur le net sur comment trouver si il y a des caractères spéciaux dans les cellules d'une colonne.
Finalement j'y suis arrivé et je me dit que ça peut servir à d'autres donc voici ma solution:

Code:
Sub Control_Format()
'controle le format de saisie
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 'liste les caractères autorisés
                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

A+

EDIT: LCel étant un nombre de caractères, c'est un Integer et pas un String...
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Trouver des caractères spéciaux dans une colonne --> solution

Bonjour à tous

tkd2009
Merci pour le partage
Mais je m'étonne que tu ais eu énormément de mal ?
C'est pas les infos qui manquent pourtant, non ?
Voir ce que renvoie cette simple recherche

PS: Pour infos avec RegExp et le pattern adéquat, tu peux considérablement allégé ton code.
Si cela te dit voir ici ce que sont les expressions régulières.
 
Dernière édition:

tkd2009

XLDnaute Nouveau
Re : Trouver des caractères spéciaux dans une colonne --> solution

Merci pour le RegExp, ça semble interessant tout plein, je vais creuser un peu.
Pour mes recherches il semblerait que "l'illegal characters" était le terme à chercher, je me suis focalisé sur "caractere spécial" et "non ASCII" et j'ai pas mal tourné en rond. J'ai trouvé des sub où il fallait lister chaque caractère à chercher ou (très souvent) comment empêcher la saisie de ces caractères lors du renseignement d'une imputbox mais rien qui me convienne.

A+
 

Discussions similaires

Statistiques des forums

Discussions
312 488
Messages
2 088 846
Membres
103 972
dernier inscrit
steeter