XL 2019 Alimenter une liste avec des données glissantes (N° BL) générées par formule

Varenshar

XLDnaute Nouveau
Bonjour le forum,
Je souhaite limiter l'affichage dans ma liste déroulante aux 10 derniers mouvements effectué, et si possible, afficher le dernier mouvement en tête de liste.
Le but est, basiquement, de simplifier l'édition du bulletin de transfert qui sera utilisé par des personnes pas toujours à l'aise avec Excel.
Le bulletin se rempli automatiquement lorsqu'on sélectionne dans cette liste déroulante le numéro de bulletin correspondant.
Ce numéro de bulletin est généré par une formule (CONCATENER) et reprend plusieurs informations (type de mouvement, date, numéro du mouvement dans la journée).
Aucune des solutions que j'ai pu trouver jusqu'à présent ne fonctionne pour mon problème. Si l'un d'entre vous peut me mettre sur la piste, je lui en serai extrêmement reconnaissant ! (VBA peut-être, pour récupérer les 10 dernières données entrées?)

Je n'ai pas encore de fichier anonymisé, je m'y colle dès que possible pour joindre à ma demande.
Edit : fichier ajouté.

La problématique concerne le 2ème onglet (Bulletin de transfert) et la liste déroulante de choix du bulletin à éditer.

D'avance merci pour vos conseils.
 

Pièces jointes

  • Gestion stock anonymisé.xlsm
    375.7 KB · Affichages: 10
Dernière édition:

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Varenshar,
Pas sur d'avoir bien tout compris.
Un essaie PJ avec dans la feuille Listes :
VB:
Dernier bulletin présent dans la base en ligne 3:
=EQUIV(RECHERCHE("zzzzz";'Base de données'!3:3);'Base de données'!3:3;0)-1
Puis extraction bulletin avec :
Code:
=INDEX('Base de données'!$3:$3;Listes!E2)
 

Pièces jointes

  • Gestion stock anonymisé (1).xlsm
    332.3 KB · Affichages: 6

Varenshar

XLDnaute Nouveau
@Sylvanus
Un grand merci pour ta participation, même si elle ne répond pas parfaitement à ma problématique, je m'en suis inspiré pour finaliser/affiner ma propre solution.
Cette solution a d'ailleurs nécessité quelques modification simples comme le numéro de mouvement dans le temps (c'est là que ta solution entre en jeu, pour trouver la date).

Pour ma part je génère la liste des 10 derniers bulletins avec

=INDEX(NB;0;EQUIV(GRANDE.VALEUR(NM;10);NM;0))

où "NM" est le numéro de mouvement dans le temps, créé seulement s'il y a un numéro de bulletin.
J'ai repris une partie de ta solution pour trouver la bonne date de mouvement en adaptant ta formule :

=EQUIV(RECHERCHE("9^9";'Base de données'!$K$3:$GMZ$3);'Base de données'!K3:$GMZ$3;0)-1

Au final, j'ai donc bien un fichier comprenant une base de donnée de stocks, modifiable à l'envi, avec un bulletin de transfert qui se rempli automatiquement en fonction d'un numéro choisi dans une liste adaptative très courte, et d'autres fonctions de manipulations (VBA) qui en facilitent l'usage par des personnes non habituées à Excel.

Je remercie vivement les membres d'Excel-Download pour l'aide apportée, en mon nom et en celui des Ateliers Olbis, qui accueillent, forment et réintègrent des personnes en difficulté physique et/ou mentale dans le monde du travail.

Olbis les Ateliers : Un travail pour chacun
Le Mont-sur-Lausanne
Suisse, VD
 

Discussions similaires

Statistiques des forums

Discussions
315 088
Messages
2 116 089
Membres
112 658
dernier inscrit
doro 76