Suppression des caractères non imprimables avec Excel VBA

Parfois, dans les données, il y a des caractères non imprimables, tels que le signe d’une ligne, un retour d’ambulance ou des espaces non consécutifs. Vous devrez peut-être supprimer ces caractères avant de donner des données.
Quiconque travaille avec Excel pendant plus d’un mois est informé de l’existence de la fonction Rechercher et remplacer. Peut-être pourrez-vous même enregistrer une macro avec cette fonction (c’est un excellent moyen d’automatiser cette procédure). Vous pourriez penser que l’utilisation de cette fonction est une bonne idée. Cependant, il semble probable que la plupart de ces caractères sont invisibles et donc plus difficiles à supprimer à l’aide de la fonctionnalité standard Rechercher et remplacer. Le moyen le plus simple de les supprimer consiste à utiliser le code VBA.
Quand il s’agit de traiter ces personnages embêtants, il vaut la peine d’utiliser une macro qui les recherchera et les supprimera tous.
Comment ca marche?

La macro est un type relativement simple “rechercher et remplacer”. Il utilise la méthode Remplacer, selon laquelle Excel recherche des éléments spécifiques et les remplace par d’autres. La syntaxe du code est similaire à celle qui peut être visualisée après l’enregistrement d’une macro qui utilise la fonction Rechercher et remplacer.
La différence est que dans la macro – au lieu de coder en permanence le texte à rechercher – des codes spéciaux ont été utilisés pour spécifier les caractères à rechercher. Chaque personnage a son propre code ASCII, quelque chose comme un numéro de série. Par exemple, une petite lettre a a le code ASCII 97. La lettre minuscule c est à son tour dans le code ASCII 99. Les caractères invisibles ont également leurs codes:
• le caractère de la ligne a le code 10,
• la ligne de retour de chariot porte le code 13,
• l’espace insécable a le code 160.
La macro utilise la méthode Replace et les codes ASCII pour rechercher les caractères appropriés. Ensuite, chaque code de caractère est remplacé par la chaîne suivante:
Sub SuppressionCaracteresIm()
'Étape 1: Supprimez le caractère de saut de ligne
ActiveSheet.UsedRange.Replace What:=Chr(10), Replacement:=""
'Étape 2: Supprimer le caractère de retour chariot
ActiveSheet.UsedRange.Replace What:=Chr(13), Replacement:=""
'Étape 3: Supprimer les espaces insécables
ActiveSheet.UsedRange.Replace What:=Chr(160), Replacement:=""
End Sub

Commentaires

1. À la première étape, tous les caractères de décalage de ligne sont recherchés et supprimés. Le code de ce caractère est 10. Ces caractères peuvent être trouvés en entrant un code donné après la fonction Chr. Lorsque ce caractère (Chr (10)) est trouvé, il est remplacé par une chaîne vide à l’aide de l’argument Remplacement.
Faites attention à l’utilisation de la méthode ActiveSheet.UsedRange. Cela provoque Excel à rechercher toutes les cellules contenant des données. L’objet UsedRange peut être remplacé si nécessaire par les cellules actuellement sélectionnées.
2. Dans la deuxième étape, tous les caractères de retour à la ligne sont recherchés et supprimés.
3. Dans la troisième étape, les espaces insécables sont recherchés et supprimés.

NOTE
Les instructions utilisées dans cette macro ne représentent qu’une petite partie de tous les caractères non imprimables. Cependant, ils sont le plus souvent supprimés des données. Si vous devez en supprimer d’autres, ajoutez simplement une autre instruction, en indiquant le caractère auquel vous souhaitez faire référence. Tout ce que vous avez à faire est d’entrer des caractères “ASCII” dans n’importe quel moteur de recherche et une liste de codes pour la plupart des caractères sera affichée.

S’abonner
Notifier de
0 Commentaires
Inline Feedbacks
Voir tous les commentaires

Initiation à Excel

Fonctions Excel

Excel VBA

Macros VBA Utiles

Plus d'outils

Sur Facebook

Sur YouTube

0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x