Je ne trouve pas

Bonsoir,

Je ne sais pas comment est déclaré "Plage" pour que la liste déroulante ne va pas au dela de de qui existe

j'ai essayé de reproduire avec "bibi" il me prend des cellules vide

Merci de votre aide et explications

16plage-vs-bibi.xlsx (10.00 Ko)

Bonjour,

Pour que ta plage soit dynamique, il faut utiliser la fonction DECALER et NBVAL.

Voici un petit tuto qui peut t'aider : https://www.youtube.com/watch?v=LvAnQXidgi8

bonsoir

voila un fichier avec qques explications sur comment faire

11barachoie-bibi.xlsx (10.33 Ko)

cordialement

Bonsoir,

puis-je me permettre d'apporter ma pierre à l'édifice ?

La fonction décaler supporte 5 arguments :

La cellule de référence

Le nombre de ligne de décalage pour trouver le début d'une plage(ou cellule) par rapport à la cellule de référence

Le nombre de colonne de décalage pour trouver le début d'une plage (ou cellule) par rapport à la cellule de référence

Le nombre de ligne de décalage pour trouver la fin de la plage par rapport à la cellule de référence

Le nombre de colonne de décalage pour trouver la fin de la plage par rapport à la cellule de référence

Dans votre exemple la liste de choix se trouve en colonne E et les données vont de la ligne 1 à la ligne 6, donc la plage de cellule pour la liste de choix est E1:E6.

Maintenant, le plus simple est de prendre en cellule de référence la cellule E1, on se trouve donc avec la formule DECALER suivante :

=DECALER(Cel_de_réf;NB_lig_decal_déb_zone;NB_col_decal_déb_zone;NB_lig_decal_fin_zone;NB_col_decal_fin_zone)

=DECALER($E$1;0;0;6;0)

En effet cellule de référence E1

Nombre de ligne de décalage pour le début de zone = 0 car réf est déjà en ligne 1

Nombre de colonne de décalage pour le début de zone = 0 car réf est déjà en colonne E

Nombre de ligne de décalage pour la fin de zone = 6 car la liste va jusqu'à 6 lignes en dessous

Nombre de colonne de décalage pour la fin de zone = 0 car la fin de liste est encore en colonne E

Le formule peut s'écrire comme ceci :

=DECALER($E$1;;;6) l'absence de valeur équivaut au 0

Le soucis avec cette écriture est que si la liste s'allonge en ligne 7, la 7ième valeur ne sera pas prise en compte, il faudrait que le nombre de ligne de décalage de fin de zone soit "agrandi" de 1 !

La solution ? NBVAL !

En effet DECALER supporte l'imbrication de formule !

Donc au lieu d'écrire 6 en dur dans la formule (en dur = non variable !) il faut remplacer cette valeur par une formule qui sera donc variable... En fait si on regarde bien la colonne si une valeur est inscrite en ligne 7, le décalage correspond au nombre de valeur de la colonne, donc NBVAL($E:$E) qui fait qu'Excel compte le NomBre de VALeur dans la colonne E !

La formule devient donc :

=DECALER($E$1;;;NBVAL($E:$E))

ATTENTION ! dans votre fichier il y a le mot "plage" dans la colonne E donc la zone prend en compte une cellule de trop par rapport à la longueur de la liste !!! Cette valeur pourrait correspondre à l'entête de la colonne qui explique ce qu'est la liste, donc dans la plupart des cas la formule est :

=DECALER($E$1;;;NBVAL($E:$E)-1)

où le moins 1est là pour supprimer la valeur "plage" qui se trouve sous votre liste.

Cette technique est utilisée pour supprimer la valeur de l'entête de la colonne de la liste qu'on ne veut pas voir apparaître dans la liste de choix. Lais dans ce cas il faut également faire un décalage de 1 ligne du début de zone afin de ne pas commencer la liste avec la valeur de l'entête donc la formule est dans ce cas :

=DECALER($E$1;1;;NBVAL($E:$E)-1)

Mon exemple est en place en colonne A avec la liste de choix en cellule B1

@ bientôt

LouReeD

Merci de vos lumieres et portez vous bien

et bonne continuation

Daniel

Rechercher des sujets similaires à "trouve pas"