IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Voir le flux RSS

Pierre Fauconnier

[Actualité] Exclusivité Excel 365: Liste déroulante intuitive dans une cellule, sans VBA (liste de validation)

Note : 2 votes pour une moyenne de 5,00.
par , 09/04/2021 à 09h22 (5796 Affichages)
Salut.

La question d'une liste de validation intuitive est de temps en temps posée sur nos forums. Avant la version Excel 365, il fallait obligatoirement du VBA est une manipulation particulière plantait le code, obligeant à gérer l'erreur d'exécution.

Avec Excel 365, la donne a changé, et il maintenant possible, grâce aux plages dynamiques, de mettre en place une liste de validation intuitive qui "suit" la saisie pour adapter la liste possible. Pourquoi s'en priver surtout que l'on va voir que c'est très simple à mettre en place.

Même si son comportement n'est pas exactement le même que celui d'un contrôle de type ComboBox, l'ergonomie mise en place n'en est pas moins intéressante.

Cette liste de validation intuitive va s'appuyer sur une plage dynamique. Depuis XL365, certaines fonctions renvoient une plage dont la taille est dynamique et modulable grâce aux paramètres de la fonction.


Plages dynamiques

L'illustration suivante met en évidence la plage dynamique créée par la fonction FILTRE avec la formule
Code excel : Sélectionner tout - Visualiser dans une fenêtre à part
=FILTRE(t_Contacts[Prénom];t_Contacts[Service]=F1)


Nom : 2021-04-09_082612.png
Affichages : 9094
Taille : 20,1 Ko


Les conditions doivent être rédigées de façon à renvoyer VRAI et peuvent être formulées, ce qui offre une grande souplesse de filtre, puisqu'en gros, c'est votre capacité à formuler qui fixe la limite

Voici la fonction FILTRE pour récupérer les contacts travaillant dans un des services du tableau des services grâce à la formule
Code excel : Sélectionner tout - Visualiser dans une fenêtre à part
=FILTRE(t_Contacts[Prénom];SIERREUR(EQUIV(t_Contacts[Service];t_Services[Services];0);FAUX))


Nom : 2021-04-09_082943.png
Affichages : 8452
Taille : 97,4 Ko



On pourra donc filtrer les noms qui contiennent une certaine lettre ou un certain groupe de lettres grâce à la formule
Code excel : Sélectionner tout - Visualiser dans une fenêtre à part
=FILTRE(t_Contacts[Prénom];SIERREUR(CHERCHE(F1;t_Contacts[Prénom])>0;FAUX))

Nom : 2021-04-09_090623.png
Affichages : 8511
Taille : 92,0 Ko


La plage étant dynamique, on n'en connait ni la taille ni l'adresse complète. Mais Excel nous offre la possibilité de travailler avec en suffixant l'adresse de sa première cellule avec #. Dès lors, on peut la manipuler comme n'importe quelle plage d'une feuille. Ici, on va en compter les lignes, par exemple.

Nom : 2021-04-09_090953.png
Affichages : 8405
Taille : 7,2 Ko


Liste de validation intuitive

Dès lors, on pourrait appuyer la liste de validation sur cette plage D1#.

Nom : 2021-04-09_091547.png
Affichages : 8369
Taille : 13,9 Ko


Du coup, notre liste de validation s'adapte à la saisie partielle dans la cellule, à condition que l'on ait désactivé l'alerte pour saisie non conforme dans le troisième onglet de la boite de dialogue!

Nom : 2021-04-09_091754.png
Affichages : 8396
Taille : 4,0 Ko

Nom : 2021-04-09_091816.png
Affichages : 8321
Taille : 4,2 Ko

Si l'on veut tout ce qui commence par la saisie, il suffit de modifier la condition de FILTRE. On voit ainsi que c'est la formule qui pilote la création de la plage dynamique et donc de la liste de validation

Nom : 2021-04-09_092111.png
Affichages : 8350
Taille : 6,3 Ko


Voilà une raison de plus de passer à Excel 365 si ce n'est déjà fait.

Envoyer le billet « Exclusivité Excel 365: Liste déroulante intuitive dans une cellule, sans VBA (liste de validation) » dans le blog Viadeo Envoyer le billet « Exclusivité Excel 365: Liste déroulante intuitive dans une cellule, sans VBA (liste de validation) » dans le blog Twitter Envoyer le billet « Exclusivité Excel 365: Liste déroulante intuitive dans une cellule, sans VBA (liste de validation) » dans le blog Google Envoyer le billet « Exclusivité Excel 365: Liste déroulante intuitive dans une cellule, sans VBA (liste de validation) » dans le blog Facebook Envoyer le billet « Exclusivité Excel 365: Liste déroulante intuitive dans une cellule, sans VBA (liste de validation) » dans le blog Digg Envoyer le billet « Exclusivité Excel 365: Liste déroulante intuitive dans une cellule, sans VBA (liste de validation) » dans le blog Delicious Envoyer le billet « Exclusivité Excel 365: Liste déroulante intuitive dans une cellule, sans VBA (liste de validation) » dans le blog MySpace Envoyer le billet « Exclusivité Excel 365: Liste déroulante intuitive dans une cellule, sans VBA (liste de validation) » dans le blog Yahoo

Commentaires

  1. Avatar de curt
    • |
    • permalink
    Bonjour Pierre,

    toujours au top pour tes tutos et c'est toujours un plaisir de découvrir ces nouveautés qui nous simplifient la vie.
    Bien vu
  2. Avatar de Pierre Fauconnier
    • |
    • permalink
    Bonjour Curt,

    Merci pour ta fidélité et ton appréciation
  3. Avatar de FC42740
    • |
    • permalink
    Bonjour,

    Merci pour ce tutoriel très facile à utiliser, ça fonctionne super bien.

    J'aurais voulu créer plusieurs cellules contenant une liste déroulante comme dans l'exemple. Le problème étant que pour chaque liste déroulante je dois créer un tableau avec la formule donnée dans le tutoriel.

    Je me demandais s'il était possible d'utiliser la liste déroulante sans passer par une cellule annexe ?
    L'idée serait de rentrer la formule directement dans la source de la validation de données, lorsque j'essaye j'ai un message me disant que la source est reconnue comme erronée et rien ne s'affiche alors dans le menu déroulant.

    Peut-être que ce n'est pas faisable et qu'il faut forcément faire référence à une cellule annexe mais je trouverai ça plus pratique.

    Merci
    Florian