Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :
Sujets que vous pourriez aussi aimer :
Purger les espaces de début et de fin
Lorsque des données sont importées dans un classeur de façon automatisée, il n'est pas rare que des défauts et irrégularités existent.
Sur l'exemple illustré par la capture, des noms de commerciaux sont inscrits en première colonne d'un tableau. Et comme vous le remarquez, des
irrégularités d'alignement existent du fait de la présence d'
espaces résiduels et variables en nombres en
préfixes des textes. De même, en cliquant dans la barre de formule de l'une ou l'autre cellule, vous pouvez constater que ces
espaces résiduels existent aussi en
suffixes des textes.
Mais si l'utilisateur clique sur le
bouton Purger , placé sur la droite du tableau, tout rentre dans l'ordre. Tous les espaces non désirés sont supprimés sans toucher aux espaces de séparation des mots. Et pour un tel travail, c'est un
traitement automatisé qui est entrepris par le
code VBA . Il consiste premièrement Ã
parcourir toutes les cellules sélectionnées , grâce à une
boucle For Each , comme nous l'avons démontré à l'occasion d'une précédente astuce.
Classeur Excel à télécharger
Pour la démonstration de la technique, nous suggérons d'appuyer l'étude sur un
classeur abritant ces défauts à corriger.
Nous découvrons bien le tableau avec ses défauts d'alignement en première colonne. Le
bouton intitulé
Purger est d'ores et déjà associé à une procédure VBA qu'il est question d'implémenter.
Réaliser le raccourci clavier ALT + F11 pour basculer dans l'éditeur VBA Excel ,
Nous découvrons effectivement la procédure du même nom que le bouton.
Sub purger()
End Sub
La variable de cellule
Comme nous devons analyser chaque cellule sélectionnée à la recherche d'
espaces résiduels , nous devons commencer par déclarer une
variable capable de représenter ces cellules.
Dans les bornes de la procédure, ajouter la déclaration de variable suivante :
Sub purger()
Dim cellule As Range
End Sub
Comme nous l'avons déjà évoqué par le passé, une
variable de type Range représente une plage de cellules et à défaut une cellule unique. C'est cette variable que nous allons utiliser pour
parcourir toutes les cellules de la sélection .
Les cellules de la sélection
C'est une
boucle For Each impliquant cette variable qui va nous permettre d'analyser tour à tour les cellules sélectionnées par l'utilisateur.
A la suite du code, créer la boucle For Each suivante :
...
For Each cellule In Selection
Next cellule
...
L'
objet Selection est aussi un
objet de type Range . Il désigne la
plage de cellules sélectionnées sur la feuille. C'est ainsi que nous pouvons la parcourir en exploitant notre
objet nommé
cellule .
Supprimer les espaces dans les cellules
A chaque passage dans cette boucle, il ne nous reste plus qu'Ã appliquer la
fonction Trim sur le contenu de la cellule en cours d'analyse.
Dans les bornes de la boucle , ajouter l'instruction VBA suivante :
...
cellule.Value = Trim(cellule.Value)
...
Trim est une
fonction qui supprime tout simplement tous les espaces situés en préfixes et suffixes des chaînes de texte tout en préservant ceux séparant les mots.
Enregistrer les modifications (CTRL + S) et basculer sur la feuille Excel (ALT + Tab),
Sélectionner toutes les cellules de la première colonne du tableau, soit la plage B3:B18 ,
Puis, cliquer sur le bouton Purger ,
En un clin d'oeil et comme vous pouvez l'apprécier, tous les
défauts d'alignement sont corrigés et ce, pour
toutes les cellules de la sélection . C'est le résultat opéré par le traitement de la
fonction Trim sur chaque contenu analysé, afin d'éliminer les
espaces résiduels placés avant et après les chaînes de caractères. Et pour cela, c'est un
code VBA trivial qui est capable d'opérer sur de très grandes quantités d'informations de bases de données :
Sub purger()
Dim cellule As Range
For Each cellule In Selection
cellule.Value = Trim(cellule.Value)
Next cellule
End Sub