Microsoft 365 liste déroulante avec case à cocher sans vba.

blancolie

XLDnaute Impliqué
Bonjour le forum,

existe t il un moyen de creer une liste déroulante avec des cases à cocher ? sans vba et macro. y a t il des tutos ? j'en trouve pas à ma convenance, ou quelqu'un peut me faire un modèle ? Dans cette liste déroulante, il y aura également des lignes.

cordialement
 
Solution
Bonsoir

en ce qui concerne LIGNE($5:$343, le tableau dans l'onglet donnée congé dépassera la ligne 343, il n'y a un moyen de rendre cela dynamique ? le tableau dans l'onglet donnée congé se nomme T_RecapCongés donc cela devrait pas rendre dynamique ligne(5 :343 ?

Normalement, LIGNE(T_RecapCongés) ou LIGNE(T_RecapCongés[Agent(s)]) devraient faire l'affaire.

@ plus

CISCO

XLDnaute Barbatruc
Bonsoir

en ce qui concerne LIGNE($5:$343, le tableau dans l'onglet donnée congé dépassera la ligne 343, il n'y a un moyen de rendre cela dynamique ? le tableau dans l'onglet donnée congé se nomme T_RecapCongés donc cela devrait pas rendre dynamique ligne(5 :343 ?

Normalement, LIGNE(T_RecapCongés) ou LIGNE(T_RecapCongés[Agent(s)]) devraient faire l'affaire.

@ plus
 

CISCO

XLDnaute Barbatruc
Bonjour

Dans la première cellule, dans F7, on a un nom X.
Dans F8, on veut un autre nom. Avec (NB.SI(F$6:F6;'Donné Congé'!C$5:C$250)=0) on élimine le nom X déja cité dans F7 (car pour X, NB.SI(....) = 1). Donc la formule ne ramène pas les n° de ligne correspondant à ce nom X.
Donc, toujours dans F8, une partie de la formule renvoie une liste de n° de LIGNE et des "". Je ne veux que le plus petit de ces n°, donc je fais avec MIN. A ce MIN correspond un autre nom, Y par ex.

Au début, j'avais mis PETITE.VALEUR(SI.....LIGNE($5:$343));LIGNES($1:1)). Cela convient dans F7 (c'est la même chose que MIN), et on obtient bien X, mais cela ne convient pas dans F8. Dans celle-ci, cette partie donne PETITE.VALEUR(SI.....LIGNE($5:$343));LIGNES($1:2)). Cela ne convient pas à cause de la partie (NB.SI(F$6:F7;'Donné Congé'!C$5:C$250)=0) qui a déjà éliminé les lignes correspondant au premier nom X (=F7). La formule ne renvoie pas les lignes correspondant à X, mais toutes celles correspondant à des Y, des Z... On veut que la formule affiche Y. PETITE.VALEUR(SI.....LIGNE($5:$343));LIGNES($1:2)) va renvoyer la seconde plus petite valeur des n° de ligne choisis. S'il y a deux Y ou plus dans Donné congé, placés avant Z, pas de problème, la formule affiche bien le nom Y. S'il ni en a qu'un, la formule ne va pas l'afficher. Et cela ne convient pas.

Pour voir tous ces calculs intermédiaires, il faut cliquer sur l'onglet Formule --> Evaluation de formule--> Evaluer. Malheureusement, cela n'est pratique que lorsqu'il y a peu de donnés à traiter, la fenêtre "Evaluation de formule" étant trop petite pour voir facilement toutes les valeurs intermédiaires. Une autre solution, surligner la partie à analyser, dans la barre de formule, parenthèses comprises, et F9. Echap pour revenir en arrière.

PETITE VALEUR.JPG


@ plus
 
Dernière édition:

CISCO

XLDnaute Barbatruc
Bonjour

Ci-dessous, une autre manière d'expliquer le fonctionnement de la formule dans F7.
La formule avec PETITE.VALEUR, sans la partie (NB.SI(F$6:F6;'Donné Congé'!C$5:C$250)=0), renvoie une série de noms X, Y, Z du genre :
liste 1 = "";"";X;"";X;"";"";Y;"";"";X;"";Y;Y;Z;""...
Dans F7, on veut le premier X, ce qu'on peut obtenir avec un PETITE.VALEUR(.....;1) ou un MIN(.....).
Dans F8, cette formule sans la partie (NB.SI(F$6:F6;'Donné Congé'!C$5:C$250)=0) renvoierait la même liste et donnerait le deuxième X, ce qui ne convient pas. Donc, je rajoute la partie en (NB.SI(F$6:F6;'Donné Congé'!C$5:C$250)=0). On obtient la liste :
"";"";"";"";"";"";"";Y;"";"";"";"";Y;Y;Z;""..., donc sans les X.
Dans F8, on n'a plus PETITE.VALEUR(...;1) mais on a PETITE.VALEUR(...;2), donc on obtient le deuxième Y. Cela nous convient.

Mais imaginons un autre cas. Si dans F7, on a une série du genre :
liste 2 = "";"";X;"";X;"";"";"";"";"";X;"";Y;"";Z;""...
dans F8 cela donnera
"";"";"";"";"";"";"";"";"";"";"";"";Y;"";Z;""...
et la formule nous renverra, à cause de PETITE.VALEUR(...;2), le Z et pas le Y.

Bien sûr, comme il y a peut-être des Y plus loin dans la liste 2, cela n'est pas systématiquement un problème. N'empêche qu'il faut penser au cas ou il ni aurait qu'un Y... et donc il faut mieux faire avec MIN qui, systématiquement, renverra le premier n° disponible dans la liste. Grace à cela, la formule renverra bien le premier Y.

@ plus
 
Dernière édition:

blancolie

XLDnaute Impliqué
Bonsoir Cisco,

Merci pour ta deuxième explication.

Je suis entrain de m'entrainer avec la petite valeur et je rencontre un changement de comportement lorsqu'on sélectionne les colonnes.

Nous sommes bien d'accord lors qu'on sélectionne les colonnes dans des tableau structurés, la colonne change de couleur et au lieu d'avoir L45:L90, on a le nom de la colonne qui apparait à la place.

Avec le début de ma formule : index(agent) cela change de couleur la colonne, puis avec petite.valeur à la suite, cela change de couleur par contre quand je rajoute une autre condition la quand je sélectionne une autre colonne, la cette fois ci cela ne change pas et au lieu j'ai donnécongé!L45:L100 et que je met = pour comparer, la sélection disparait.

Pourquoi ? j'aimerais comprendre.?

Par contre si je combien petitevaleur avec esttexte, tout fonctione. les colonnes changent de couleurs et la sélection reste.

Pourquoi ? si tu a une petite idée.
 

CISCO

XLDnaute Barbatruc
Bonsoir

Je n'ai pas l'habitude de travailler systématiquement avec des tableaux structurés (J'ai peu utilisé Excel ces deux ou trois dernières années, donc ne me suis pas tenu au courant des évolutions de ce tableur), donc, je ne pourrai pas t'expliquer pourquoi tu as ce problème...

Je regarde ça demain.

@ plus
 

Discussions similaires

Réponses
8
Affichages
364

Statistiques des forums

Discussions
311 725
Messages
2 081 948
Membres
101 850
dernier inscrit
Danigra