Liste déroulante dynamique

Bonjour,

Sur un feuillet, sur la colonne A, j'ai un ensemble de données qui peut s'étaler de la ligne 11 jusqu'à la ligne 10,000 (théoriquement).

Dans la pratique, actuellement, l'ensemble de données s'arrete à la ligne 82.

Ceci dit à tout moment, l'utilisateur peut être amené à inscrire une autre donnée sur les lignes suivantes.

Sur un autre feuillet, j'utilise l'ensemble de ces données sur une liste déroulante de choix (pour ainsi éviter que l'utilisateur inscrive n'importe quoi).

Le problème c'est que si je fais aller ma liste déroulante jusqu'à la ligne 10,000, elle contient plein de lignes à vide, puisqu'actuellement non renseignés. Et même si ce n'est pas un problème en soi, ce n'est pas très pro de laisser ça ainsi.

Du coup j'aimerais savoir si y'a un moyen pour que la liste déroulante "sache" jusqu'à quelle ligne il faut prendre en compte les données (la dernière ligne renseignée) pour ainsi éviter d'avoir plein de lignes à blanc dans la liste déroulante?

Merci de vos réponses


Autant pour moi, je n'avais pas bien cherché sur Google, voici la réponse:

Bonjour,

Théoriquement et de tête :

=Decaler(A11;;;NBVAL(A:A)-1)

Tu colle cette formule dans "source" de ta liste de donnée

Cordialement,

Leakim

Bonjour Leakim et merci de ta réponse!

En effet, j'ai édité mon post pour dire que j'avais mal cherché et que la réponse était dans cette vidéo:

Cependant je suis face à un nouveau problème, c'est que cet ensemble de données est sur un autre feuillet...Qui s'appelle JEU

et quand je fais ça:

=Decaler(JEU!A11;0;0;NBVAL(JEU!A:A)-1;1)

ou ça:

=Decaler(JEU!A11;0;0;NBVAL(JEU!A11:A10000)-1;1)

Il m'indique l'erreur suivante:

"Vous ne pouvez pas faire reference à d'autres feuilles ou classeurs Excel pour les criteres Validation des données"

Pourtant quand je lui indique:

=JEU!A11:A10000

Ca marche!

Avez-vous une idée?

Merci

re

C'est les zéros entre les points virgules

Leakim

Merci Leakim. Apparamment, non! J'ai essayé ça:

=Decaler(JEU!A11;;;NBVAL(JEU!A11:A10000)-1;1)

Et ça:

=Decaler(JEU!A11;;;NBVAL(JEU!A11:A10000)-1)

Ca met la même erreur!

Bon ok,

On peut chercher longtemps, en aveugle ...

Joints ton fichier, comme ça je pourrais chercher avec toi.

Leakim

Exactement ce qu'il me fallait, merci beaucoup

Bonsoir à vous,

Ravi que vous alliez une solution.

Bravo à Banzai64 pour sa claire voyance

Leakim

Bonsoir,

Ben en fait, ca marche mais pas completement. Mais là, je sais pas si quelqu'un va pouvoir résoudre mon problème...

J'ai rempli des cellules avec des valeurs de la liste déroulante, en utilisant la fleche à droite de la cellule, jusque là ok.

Maintenant j'execute une macro qui modifie, réorganise le feuillet JEU. Par exemple, entre autres, il remet par ordre alphabétique la colonne A, tout en ne laissant pas de blancs entre deux cellules de la colonne.

Une fois sorti de la macro, quand je reviens sur mon onglet avec les cellules, elles sont bloquées: quand je cliques sur la fleche à droite, rien ne s'y passe comme si la cellule était protégé, et la liste déroulante ne s'affiche pas pour éventuellement changer la valeur.

Savez-vous d'ou ça vient, et ce que je peux faire pour éviter ça?

Merci!

Bonjour,

Si je comprend bien ta macro, modifie ton "environnement"... et c'est surement pour cela que ta liste bug.

Il faut que ta source de valeurs soit dynamique d'après ta macro.

Si ta macro classe sans blanc (ce qui est un avantage pour ta liste) il faut que ta liste prenne les références après classement. Tu y avais certainement pensé... mais c'est plus clair en le disant.

Rassures-moi ta liste est bien sur un autre onglet, donc indépendant de la macro?

Cordialement,

Leakim

Bonjour

Un fichier avec ta macro et avec le défaut ne serait pas du superflu

Merci bien

J'ai pu comprendre l'origine du problème. Il faut savoir que mon projet ne tient pas seulement sur ce dont je vous ait parlé, mais qu'il y a plein d'autre feuillet, et plein de macros différentes.

Lorsque je fais évoluer le tableur en lancant la macro principale, la 1ere chose qui est faite, c'est une copie de tous les feuillets, qui sont renommés avec le prefixe "S".

Ainsi entre autres du coup après j'ai le feuillet "JEU" qui a évolué et le feuillet "SJEU", qui correspond à l'ancienne version du feuillet JEU

Sauf que je me suis rendu compte qu'une donnée prise en paramètre du projet n'était pas correcte, donc j'ai du revenir en arrière...Ce que j'ai fait du coup, c'est que j'ai supprimé le feuillet "JEU", puis j'ai renommé le feuillet "SJEU" en "JEU", afin de pouvoir relancer le projet. J'ai l'impression que c'est la que quelque chose bug

Maintenant, lorsque je vais dans le Gestionnaire de noms j'ai maintenant deux listes:

*Liste dont la description est: =DECALER(JEU!XFC19;;;NBVAL(JEU!XFC19:XFC10018))

*Liste dont la description est: =DECALER(#REF!XFC19;;;NBVAL(#REF!XFC19:XFC10018))

Je vous envoies un exemple de fichier juste avec le feuillet "JEU", vous pouvez lancer en executant la macro "abc" pour voir ce que cela fait. Après, supprimez le feuillet JEU et renommez SJEU en JEU.

Du coup y'a un moyen pour que la liste marche toujours si on fait ça?

19classeur1.xlsm (14.47 Ko)

Bonjour

C'est sur que si tu supprimes une feuille, les formules ayant cette feuille comme paramètre vont afficher #REF!

Au lieu de faire la suppression plus le renommage de la feuille , fait une copie de "SJeu" sur "Jeu"

Rechercher des sujets similaires à "liste deroulante dynamique"