Bonjour à tous !
Je fais un travail pour un stage qui récupère une base de données et la transfère sous Excel
Je dois ensuite pouvoir créer des listes de choix en function du contenu des lignes SANS VBA. (Ou alors le stricte minimum, donc pour mon probleme je ne peux pas en utiliser)
Je m'explique :
J'ai une liste déroulante pour chaque colonne, et je dois pouvoir choisir grâce à cette liste, une des valeurs contenues dans la colonne.
Comme je ne peux pas prévoir la taille de la colonne (car les bases peuvent être modifiées à tout moment, et on utilise pas toujours la meme base de donnée donc je ne peux pas prévoir la taille de la liste)
J'utilise donc un principe assez simple, par exemple pour faire une liste de la colonne B dynamiquement, je prend de B2 jusqu'a la dernière cellule non vide grâce à cette function :
="B2:B"&NB.SI(B:B;"<>")+1 Exemple : Dans la cellule G2
(NB.SI de B:B <> "" renvoi le nombre de case non vide, mais on lui rajoute +1 pour ne pas prendre en compte le titre de la colonne (contenu dans B1)
Ensuite je n'ai plus qu'à faire Données>Validation de données, dans critère de validation sous l'onglet Options je met : Autoriser : Liste, ignorer si vide ainsi que liste déroulante dans cellule cochée, puis dans source je met : =INDIRECT(G2) (la cellule où il y a ma formule plus haut)
J'obtiens donc une liste dynamique de tout ce qu'il y a dans ma colonne de B, le probleme est qu'il y a des doublons.
J'ai regardé beaucoup de techniques, mais tout ce que j'ai trouvé n'etait pas dynamique (il fallait rajouter des trucs à la main) ou alors il fallait trier les listes par ordre alphabétiques et comparer les cellules 2 par 2, sauf que comme c'est des table de données, elles sont triées par ID et je ne peux pas me permettre de les trier autrement car cela "chamboulerait" l'architecture de la table actuelle.
Je ne sais pas trop comment m'y prendre, je sais que sans VBA et sans tri, demander qqch de dynamique est trop compliqué, mais pour mon stage je suis oblige de respecter ces critères.
Connaissez vous des solutions ?
Merci de votre attention,
Cordialement,
Maxime OZENNE.
Partager