Comment écrire un texte à l’envers avec la fonction personnalisée INVERSER() en VBA Excel

Guide « 108 astuces pour grands débutants sur Excel ! » Offert
Booster votre productivité en téléchargeant gratuitement votre ebook PDF des meilleures astuces pour les débutants et les pros d'Excel
Excel formation - 00 Astuces - 100
 

Aujourd’hui, je vous propose un nouveau tutoriel, dans lequel nous allons créer une petite fonction personnalisée assez amusante, puisque celle-ci va nous permettre d’écrire un texte à l’envers.

 

Téléchargement

Vous pouvez télécharger le fichier d'exemple de cet article en cliquant sur le lien suivant :

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
 

 

Tutoriel Vidéo

 

1. Présentation

Comme nous l’avons vu dans la courte introduction de ce tutoriel, je vous propose de découvrir comment créer une petite fonction personnalisée sur Excel, qui va nous permettre d’inverser le contenu d’une cellule passée en argument.

Si l’inversion en elle-même ne pose pas de problème particulier, il sera important que nous fassions attention au fait que la fonction puisse gérer plusieurs types de données, qu’il s’agisse de textes ou encore de nombres, nous y reviendrons un peu plus tard.

 

2. Comment créer une fonction personnalisée sur Excel

Pour créer notre fonction personnalisée, nous allons bien entendu devoir passer par le développement d’une petite macro-commande en VBA.

Pour que ce tutoriel reste accessible à tout le monde, nous allons revenir dans le détail sur aspect de cette dernière.

Si vous souhaitez aller plus loin dans la découverte du langage VBA, vous pouvez évidemment consulter la formation disponible sur le blog en cliquant ici.

Pour commencer, nous allons lancer l’éditeur de code VBE (pour Visual Basic Editor), qui est l’éditeur de code intégré dans les différentes applications de la suite Office et qui permet de développer des macro-commandes en VBA.

Pour cela, nous appuyons simplement sur les touches [Alt]+[F11] :

Excel formation - créer une fonction excel pour écrire envers - 01

VBE s’ouvre alors et nous allons commencer par créer un nouveau module.

Un module est une feuille de saisie de code dans laquelle nous allons pouvoir saisir nos macros et fonctions.

Pour insérer un nouveau module, nous nous rendons dans le menu Insertion > Module :

Excel formation - créer une fonction excel pour écrire envers - 02

Une fois le module inséré, nous allons pouvoir insérer notre fonction personnalisée en saisissant simplement le mot-clé Function, suivi du nom de la fonction.

 

3. La fonction INVERSER()

Le nom que nous donnons à une fonction est très important, car celui-ci permettra de pouvoir identifier facilement celle-ci, et doit être retenu facilement pour ne pas avoir à le chercher trop longtemps.

Nous allons donc appeler la fonction INVERSER() :

Function INVERSER()
 
End Function

Comme vous pouvez le constater, lorsque nous validons la création de la fonction en appuyant sur la touche [Entrée] du clavier, Excel ajoute deux éléments automatiquement :

  • Tout d’abord Excel ajouter des parenthèses après le nom de la fonction, qui permettra ensuite de pouvoir insérer des arguments à la fonction,
  • Excel ajoute également la ligne « End Function » qui permet de marquer la fin de la fonction. Tout ce qui sera inscrit entre ces deux lignes sera exécuté à chaque fois que nous allons lancer la fonction

Pour commencer, nous allons donc pouvoir définir un argument à notre fonction qui permettra de saisir une valeur que nous allons voir manipuler afin d’en récupérer la valeur inversée.

Nous allons appeler cet argument valeur, et étant donné que l’utilisateur doit être capable de saisir toute sorte de donnée (nombres ou textes), nous allons typer cet argument en tant que Variant.

Function INVERSER(valeur As Variant)
 
End Function

Ensuite, nous allons déclarer deux variables qui vont nous permettre de faire fonctionner la macro :

  • La variable i tout d’abord qui va nous permettre de passer en revue chaque caractère de l’argument, nous typons cette variable en tant qu’Integer,
  • Puis la variable valeurInversee qui va permettre de construire la nouvelle chaîne de caractères à retourner avec la fonction

 

    Dim i As Integer
    Dim valeurInversee As String

 

4. Utiliser une boucle For... Next inversée !

Maintenant que la variable i est disponible, nous allons pouvoir mettre en place une boucle For… Next qui permet d’exécuter une commande tant qu’une variable est vraie.

Si vous souhaitez en savoir plus sur les boucles For… Next, vous pouvez suivre le chapitre dédiée tiré de la formation sur l’apprentissage de VBA.

Pour cette boucle, nous commençons par donner à la variable i la valeur 1, et nous allons vouloir que celle-ci se répète jusqu’à ce qui ai pour valeur le nombre de caractères dont est composé la variable valeur.

Pour connaître ce nombre de caractères, Excel dispose de la fonction Len() :

    For i = 1 To Len(valeur)
    Next

Ensuite, nous pouvons construire la variable valeurInversee, laquelle est égale à sa propre valeur à laquelle nous concaténons le caractère obtenu dans la variable valeur, mais en partant de la fin :

    For i = 1 To Len(valeur)
        valeurInversee = valeurInversee & Mid(valeur,  Len(valeur) - i + 1, 1)
    Next

Pour obtenir ce caractère, nous utilisons la fonction Mid(), qui permet d’obtenir une sous-chaîne issue d’une chaîne globale.

Cette fonction attend trois arguments :

  • Tout d’abord la chaîne de caractères à partir de laquelle nous souhaitons extraire la sous-chaîne, il s’agit ici de la variable valeur
  • Le second argument permet de spécifier à partir caractère nous souhaitons effectuer l’extraction, comme nous venons de le voir, la position de ce caractère dépend de la valeur de i, mais étant donné que nous souhaitons effectuer l’extraction en partant de la fin, nous allons retrancher la valeur de i au nombre de caractères contenus dans la variable valeur,
  • Enfin, le troisième argument permet de spécifier combien de caractères nous souhaitons extraire, ici nous souhaitons effectuer l’extraction caractère par caractère, nous donnons donc la valeur de 1 à cet argument

Nous pouvons encore simplifier cette opération en inversant le sens du déroulement de la boucle (nous donnons à i le nombre de caractères contenus dans la variable valeur, puis nous déroulons la boucle en sens inverse pour que i finisse par être égal à 1).

De cette manière, nous pourrons directement récupérer le caractère qui nous intéresse en utilisant la variable i :

    For i = Len(valeur) to 1 Step  -1
        valeurInversee = valeurInversee & Mid(valeur,  i, 1)
    Next

Pour inverser le sens de la boucle, nous ajoutons à la fin de la ligne contenant le For l’instruction Step -1, qui permet d’ôter une unité à chaque exécution de la boucle

 

5. Comment appeler la fonction personnalisée depuis la feuille de calculs Excel ?

Et voilà, maintenant que nous pouvons récupérer la valeur inversée de la variable passée en argument, il ne reste plus qu’à affecter cette valeur à la fonction :

    INVERSER = valeurInversee 

Nous pouvons maintenant tester la fonction directement dans la feuille de calcul, en l’appelant comme n’importe quelle autre fonction Excel :

=INVERSER(A7)

Excel formation - créer une fonction excel pour écrire envers - 03

Ensuite nous pouvons étendre la formule sur les cellules situées en dessous :

Excel formation - créer une fonction excel pour écrire envers - 04

 

6. Gérer les valeurs numériques

Il ne reste alors plus qu’un petit détail à régler.

En effet, comme nous pouvons le constater sur la ligne 9, bien que l’inversion d’une valeur numérique ait bien été effectuée, la cellule est alignée sur la gauche, ce qui signifie que celle-ci est reconnue comme une chaîne de caractères et non comme un nombre…

Pour corriger cette petite anomalie, nous allons simplement effectuer une conversion juste avant de retourner le résultat à la fonction, seulement lorsque le résultat est reconnu comme étant un nombre (pour cela nous allons utiliser la fonction IsNumeric() qui retourne la valeur True lorsque c’est le cas) :

    If IsNumeric(valeurInversee) Then
        valeurInversee = CDbl(valeurInversee)
    End If

Le résultat de la ligne 9 et maintenant correctement aligné sur la droite de la cellule :

Excel formation - créer une fonction excel pour écrire envers - 05

 



Articles qui pourraient vous intéresser

Comment remplir automatiquement des cellules d'un tableau Excel avec la complétion automatique
Comment regrouper (ou pas !) les dates d’un tableau croisé dynamique (TCD) sur Excel ?
Comment connecter Excel sur Internet, sans VBA ?
Comment traduire automatiquement des fonctions Excel dans leur version originale ?
Comment analyser les résultats d’un sondage ou questionnaire avec Excel ?
Comment utiliser la fonction SOMME.SI pour effectuer des recherches sur des textes sur Excel ?
Comment calculer et étudier des écarts budgétaires avec Excel ?
Comment verrouiller et protéger un objet (graphique, image, zone de texte…) sur Excel ?
Comment formater des dates correctement dans Excel ?
Comment protéger le formatage des cellules tout en autorisant la saisie de données dans Excel ?
Comment transformer une photo en tableau Excel ?
Comment créer un publipostage automatique avec Excel ? (sans Word !)

Contact - Plan du site - À propos - Contact

© Excelformation.fr 2018-2024 - Excel, simplement

Haut de la page

Excelformation.fr propose de nombreuses formations pratiques et gratuites sur Microsoft Excel : des cours pour apprendre à structurer et analyser les données, des tutos sur les fonctions avancées, les formules et les formules avancées d'Excel, les formules matricielles, les mise-en-formes conditionnelles, les graphiques Excel (xls, xlsx, xlsm,…). Des tutoriels pour apprendre à automatiser les tâches répétitives (via des macro-commandes en VBA) de vos classeurs Excel.