Comment ajouter des caractères (espaces, etc.) dans une cellule Excel
Dans ce tutoriel, nous allons explorer une technique permettant d'intégrer des espaces entre les lettres ou les chiffres d'une cellule dans Excel.
Si vous avez déjà été confronté à une feuille de calcul où l'espacement des données est devenu une source de frustration, ce guide est pour vous.
En effet, nous allons décomposer la procédure étape par étape de manière didactique.
Téléchargement
Vous pouvez télécharger le fichier d'exemple de cet article en cliquant sur le lien suivant :
Tutoriel Vidéo
1. Intercaler des espaces à la main
Dans ce tutoriel, nous allons apprendre à intercaler des espaces entre chaque lettre ou nombre d'une cellule Excel, et cela de deux façons : manuellement et en utilisant des fonctions personnalisées.
Pour commencer, voyons comment effectuer cette opération, sur une cellule contenant peu de contenu.
Pour cela, nous saisissons le terme "EXCEL", dans la cellule, A1.
Pour intercaler des espaces manuellement, nous double-cliquons sur la cellule, puis nous ajoutons des espaces entre les lettres, comme ceci : "E X C E L".
Pour intercaler des espaces dans un nombre, nous procédons de la même manière. Si nous avons "12345" dans la cellule A2, nous pouvons l'espacer pour obtenir "1 2 3 4 5".
2. Créer une fonction personnalisée
L'approche manuelle que nous venons de voir fonctionne effectivement, mais celle-ci peut vite être fastidieuse si les cellules contiennent beaucoup de caractères à espacer.
Heureusement, pour automatiser cette opération, une technique existe, celle-ci consistant à créer une fonction personnalisée en VBA.
Une fonction personnalisée est une procédure VBA que nous développons nous-même pour effectuer une tâche spécifique non disponible dans les fonctions intégrées d'Excel.
Elle est utile pour automatiser des tâches répétitives et pour effectuer des calculs spécifiques à vos besoins.
Pour cela, nous allons devoir la développer dans le langage VBA (Visual Basic for Applications), qui est un langage de programmation orienté objet de Microsoft.
VBA est principalement utilisé pour l'automatisation de tâches dans les applications Microsoft Office.
Pour créer cette fonction, nous allons commencer par nous rendre dans l'éditeur VBA en utilisant le raccourci [Alt]+[F11].
L’éditeur VBA est l'outil de développement intégré dans Excel qui vous permet d'écrire, de modifier et de tester du code VBA.
Ensuite, nous allons dans le menu « Insertion » et cliquons sur « Module » pour créer un nouveau module, lequel va nous permettre de stocker le code VBA.
Il peut contenir des fonctions, des sous-routines, des variables et des constantes.
C'est donc dans ce nouveau module que nous allons pouvoir saisir la fonction personnalisée.
Nous cliquons sur ce module nouvellement créé dans l'arborescence de l'éditeur VBA, ce qui ouvre un espace de travail vierge.
3. Créer la fonction Intercaler()
Pour commencer, nous déclarons la fonction VBA que nous appelons « Intercaler ».
Pour cela, nous utilisons le mot-clé « Function », suivi du nom de cette fonction.
Lorsque nous validons en appuyant sur la touche [Entrée], VBE ajoute les parenthèses dans lesquelles nous viendrons saisir les arguments de la fonction.
Il ajoute également la ligne « End Function » qui va marquer la fin de la fonction.
Function Intercaler(chaine As String, Optional caractere As String = " ")
End Function
Nous allons maintenant nous placer entre les parenthèses pour définir les deux arguments de la fonction :
- Ce premier argument que nous appelons « chaine », qui doit être une chaîne de caractères (c'est le texte que nous souhaitons espacer),
- Et le second « caractere », est également une chaîne de caractères, mais qui est un paramètre optionnel avec une valeur par défaut d'une espace.
Function Intercaler(chaine As String, Optional caractere As String = " ")
Ensuite, nous déclarons une nouvelle variable « resultat » de type chaîne de caractères.
Cette variable sera utilisée pour stocker le résultat final de notre fonction, nous commençons par lui y enregistrer le caractère de séparation spécifié par l’utilisateur, ou à défaut l’espace.
Dim resultat As String
resultat = caractere
Nous déclarons une autre variable que nous appelons simplement « i » et que nous typons en tant qu’Integer.
Celle-ci va nous permettre de mettre en place un compteur dans une boucle « For ».
Une boucle « For » en VBA est une instruction qui permet d'exécuter un bloc de code un certain nombre de fois.
Ici, nous utilisons la boucle « For » pour parcourir chaque caractère de la chaîne de caractères donnée en argument.
Dim i As Integer
For i = 1 To Len(chaine)
Nous initialisons la boucle en donnant la valeur de « 1 » à la variable « i ».
Nous allons répéter cette boucle jusqu’à ce que « i » atteigne la valeur correspondante au nombre de caractères stockés dans « chaine », que nous obtenons avec la fonction Len().
Ensuite, nous allons ajouter le i-ème caractère de la variable « chaine » à notre variable « resultat ».
Pour obtenir le caractère à ajouter, nous allons utiliser la fonction Mid() de VBA.
Ensuite, nous affichons le caractère de séparation à la suite de la chaîne.
resultat = resultat & Mid(chaine, i, 1) & caractere
Enfin, nous terminons la boucle « For » qui signifie que nous retournons à l'instruction « For » et incrémentons notre compteur « i » de 1.
Next i
Enfin, nous assignons la valeur de « resultat » à notre fonction « Intercaler ».
Cela signifie que lorsque nous appelons la fonction "Intercaler" dans notre feuille de calcul Excel, elle retournera la valeur de « resultat ».
Intercaler = resultat
Pour tester la macro, nous retournons sur la feuille de calcul Excel et nous testons notre nouvelle fonction en saisissant dans la cellule B1 la formule :
=Intercaler(A1)
Le mot "EXCEL" sera maintenant " E X C E L ".
4. Supprimer le premier et le dernier caractère de séparation
Comme vous pouvez le constater, le résultat retourne ici le caractère de séparation en début et en fin de chaîne.
Pour supprimer ces caractères automatiquement lorsque l’utilisateur le désir, nous ajoutons tout d’abord un nouvel argument que nous appelons « supprimerBordures » et auquel nous donnons la valeur « False » par défaut.
Cet argument est typé en tant que booléen, c’est-à-dire que celui-ci Pourra avoir pour valeur « True » (vrai) ou « False » (faux).
Si cet argument est vrai, la fonction supprimera le premier et le dernier caractère du résultat avant de le renvoyer :
Function Intercaler(chaine As String, Optional caractere As String = " ", Optional supprimerBordures As Boolean = False)
Puis, pour supprimer ces caractères, nous allons à nouveau utiliser la fonction « Mid() », pour extraire la sous-chaîne qui commence au deuxième caractère, et pour lequel le nombre de caractères total est égal au nombre de caractère de la chaîne moins 2 :
If supprimerBordures Then
resultat = Mid(resultat, 2, Len(resultat) - 2)
End If