Dans ce tuto je vais vous expliquer comment créer votre première fonction personnalisée à l’aide de LAMBDA en 3 étapes.

Je vous conseille de visionner la vidéo ci-dessous pour voir comment cela fonctionne pas à pas dans Excel. Vous pouvez aussi télécharger la pièce jointe, ce qui vous permettra d’expérimenter LAMBDA par vous même à partir de mon fichier exemple.

Au moment où je rédige cet article, LAMBDA est disponible uniquement dans MICROSOFT 365 et dans le programme Office Insider.

Si vous souhaitez vous inscrire au programme Office Insider, je vous explique tout ici : Office Insider – Decouvrez les nouveautés d’Excel avant tout le monde

Avantages des fonctions personnalisées créées avec LAMBDA

Créer des fonctions personnalisées avec LAMBDA permet de :

  • rendre vos formules (et donc vos classeurs) plus lisibles
  • créer des fonctions réutilisables au sein d’un même classeur
  • ajouter des fonctionnalités de récursivité à vos fonctions

Dans ce tuto nous aborderons la mise en œuvre d’une fonction personnalisée simple non récursive, cela sera l’objet d’un prochain tuto.

Votre première fonction personnalisée en 3 étapes

① – Création et test de la FORMULE

Prenons l’exemple d’une formule simple qui permet d’extraire le Nom dans un chaîne de caractères constituée d’un Prénom et d’un Nom :

Notre formule d’extraction du Nom que nous allons transformer en une fonction personnalisée est relativement simple :

=STXT(A5;CHERCHE(" ";A5;1);NBCAR(A5))

Je ne vais pas m’attarder dans ce tuto sur le mode de fonctionnement de cette fonction.

Si vous souhaitez vous familiariser avec les fonctions d’extraction de chaînes de caractères, vous trouverez ici un tuto dédié à ce sujet : Extraire du texte d’une chaîne de caractères avec des fonctions

② – Création et test de LA FONCTION LAMBDA

Dans un premier temps il n’est pas utile de savoir comment nous allons appeler notre fonction personnalisée.

Nous allons nous concentrer sur la mécanique de fonctionnement de notre fonction personnalisée avec LAMBDA, puis tester son bon fonctionnement.

La fonction LAMBDA se compose des arguments suivants :

Notre formule ne fait référence qu’à une seule variable, il n’y aura donc qu’un seul paramètre à transmettre à notre formule.

Nous allons appeler cette variable « patronyme« 

« patronyme » est la référence à une cellule contenant une chaîne de caractères (Prénom et Nom).

Ainsi notre fonction LAMBDA est la suivante :

=LAMBDA(patronyme;STXT(patronyme;CHERCHE(" ";patronyme;1);NBCAR(patronyme)))

Test de la fonction LAMBDA dans le classeur

Si on saisit la fonction LAMBDA telle quelle directement dans une cellule on obtient le message d’erreur suivant :

Pour tester une fonction LAMBDA directement dans une feuille de calcul il est nécessaire de lui transmettre les arguments de test de cette façon :

Donc pour tester notre fonction LAMBDA, nous allons la saisir sous cette forme directement dans une cellule :

=LAMBDA(patronyme=LAMBDA(patronyme;STXT(patronyme;CHERCHE(" ";patronyme;1);NBCAR(patronyme)))(A12)

Voici le résultat de notre fonction de test dans 4 cas différents :

③ – Création et utilisation de LA FONCTION PERSONNALISÉE

Maintenant que nous sommes sûrs de la syntaxe de notre fonction nous allons finaliser la création de notre fonction personnalisée.

Afin de faire en sorte que le nom de notre fonction ait un sens logique par rapport à son utilité, nous allons la nommer « ExtractionNom()« 

C’est dans le gestionnaire de noms que l’on doit enregistrer les fonctions personnalisées.

Mais au préalable vous allez copier votre fonction pour ne pas avoir à la ressaisir complètement. Sélectionnez la fonction sans ses paramètres de test et faites CTRL + c

=LAMBDA(patronyme;STXT(patronyme;CHERCHE(" ";patronyme;1);NBCAR(patronyme)))

Ensuite ouvrez le Gestionnaire de noms qui se trouve dans le bandeau « Formules »

Une fois le gestionnaire de noms ouvert, vous allez :

  • définir le nom de votre fonction personnalisée dans l’espace « Nom »
    Ici nous avons décidé de nommer notre fonction « ExtractionNom »
  • rajouter des commentaires pour documenter votre fonction. Une bonne pratique consiste à lister chacune des variables et d’expliquer à quoi elles servent, ce qui simplifiera la vie lorsque vous insérerez votre fonction personnalisée dans votre classeur.
    Nous rajoutons donc « Patronyme : Nom et Prénom » ici
  • saisir votre fonction LAMBDA dans la zone « Fait référence à : »
    Placez vous dans la zone de saisie et faites « CTRL + v » pour coller votre fonction

Voilà le résultat :

La fonction personnalisée est maintenant créée et vous pouvez l’utiliser partout dans votre classeur.

Fonction personnalisée avec LAMBDA

Vous savez maintenant comment créer une fonction personnalisée. Il est possible que cette façon de faire évolue à l’avenir car je vous le rappelle nous sommes ici dans une version de Microsoft 365 diffusée dans le Canal Bêta du programme Office Insider.

Qui sait ce que Microsoft nous réserve pour la version finale!

Que pensez vous de cette fonction? Dites moi en commentaires si vous pensez l’utiliser lorsqu’elle sera disponible.


    12 réponses à "Créez votre première fonction personnalisée avec LAMBDA"

    • Ecrivain77

      Bonjour,
      J’ai enfin compris comment extraire des infos d’une cellule.
      Je vais suivre cette fonction.
      Merci pour le partage.
      Ecrivain77

    • ANDRE TIZIO

      Bonjour j’ai office 365 quand j’utilise cette fonction j’ai une erreur NOM.
      Comment avoir cette nouvelle fonction svp?

      • David Aubert

        Bonjour André,
        Il faut être abonné au programme Office Insider.
        J’explique tout cela ici :
        https://davidaubert.fr/office-insider-nouveautes-excel/
        Bonne journée

        • Olivier

          Bonjour,

          Je suis inscrit, mais doit-on l’être sur le canal bêta ou le canal « normal » ?

          Merci d’avance

          • Olivier

            Re bonjour,

            Bon, je ne comprends pas… Canal bêta ou normal, rien y fait : je n’ai pas la fonction lambda dans mon Excel… 🙁

            Et lorsque je regarde les informations de mon compte (Dans Excel, Fichier\Compte), il me dit bien que cette machine est inscrite dans le programme insider…

            Merci d’avance pour votre retour…

    • Meissonnier jean Michel

      Bonjour

      Et un grand merci pour votre boulot…
      Un petit doute…
      Si vous appliquez votre fonction stxt telle quelle, vous allez avoir un espace devant le nom non ?
      pb qu’on peut résoudre avec cherche(xx;yyy;zzz) + 1 il me semble
      c’etait un petit détail…

      • David Aubert

        Bonjour,
        Effectivement bien vu, petite boulette à corriger (au moins dans l’article ;-)).
        Il faut mettre le +1 pour que cela soit tout à fait correct, vous avez raison.
        Je suis complètement passé à côté :(.
        Heureusement, cela ne change pas les explications relatives au fonctionnement de LAMBDA 😉
        Merci

    • Philippe Picard

      Essayée et adoptée, en supprimant simplement l’espace avant le nom par « CHERCHE( » « ;PATRONYME;1)+1 » <]; -)}

      • David Aubert

        Bonjour Philippe,
        Effectivement il y a une petite boulette sur ce point mais qui heureusement ne change pas la logique concernant les explications relatives à LAMBDA. 😉
        Je vais la corriger dans l’article.
        Bonne journée

    • Sylvanu

      Bonjour David,
      Si je créé cette fonction perso :
      Function ExtractionNom(Chaine$)
      ExtractionNom = Mid(Chaine, Application.Search( » « , Chaine, 1) + 1, Len(Chaine))
      End Function
      Cela fait la même chose, en plus simple.
      Quel est l’avantage de cette méthode par rapport à une fonction perso classique ?

      • David Aubert

        Bonjour Sylvain,
        Tu as raison, dans ton fichier Excel le résultat sera le même en utilisant cette fonction personnalisée créée en VBA.
        La différence entre une fonction personnalisée créée via la fonction LAMBDA plutôt qu’en VBA est à mon sens double :
        – Permettre aux réfractaires du VBA de pouvoir créer des fonctions personnalisées. Le VBA parait simple aux habitués mais son interface de développement et sa logique « développeur » en rebute plus d’un.
        – Permettre à terme (je l’espère, seul l’avenir nous le dira) d’utiliser les fonctions personnalisées avec Excel en mode WEB car le VBA n’est pas supporté en mode WEB.
        Ce sont pour moi les 2 différences principales, la seconde restant à valider lorsque LAMBDA sera supporté officiellement en dehors du programme Office Insider.

Répondre

Votre adresse email ne sera pas publiée.