XL 2010 Remplissage de bulletin de transfert de stock selon la date depuis base de données articles (colonne variable)

Varenshar

XLDnaute Nouveau
Bonjour à tous,
Ma base de donnée de stock entrepôt comporte un certain nombre d'articles parfois répartis sur plusieurs emplacements.
Pour chaque mouvement de réapprovisionnement du picking, j'inscrit dans une même colonne avec la date du jour pour en-tête la quantité d'articles prélevés dans la ligne correspondante, ce qui met à jour la quantité en stock dans l'emplacement concerné (ligne).

Je souhaite que le bulletin de transfert se remplisse automatiquement à partir de ces données pour l'impression, en tenant compte de la date qui y serait inscrite. Le but étant que quiconque effectuant cette opération puisse le faire sans forcément connaître Excel...

L'un des problèmes que je rencontre, c'est que cette colonne de mouvement par date est par essence variable. Dès lors, comment faire pour reprendre uniquement les données des articles concernés, en ignorant les lignes vides et en ne prenant que celles de la colonne "Date", fonctionnant comme un numéro de bulletin?

Une option qui pourrait être intéressante, mais pas indispensable serait d'avoir la liste des prélèvement dans le bulletin rangée par ordre de gisements, mais ce n'est vraiment pas indispensable...

Le remplissage pourrait être automatique au fur et à mesure, ou se faire via un bouton, avec peut-être aussi un bouton commandant l'impression du document... libre à vous de faire vos propositions !

J'imagine que seul le VBA peut faire ça, mais s'il existe une solution avec de simples fonction de calcul c'est aussi bien (je ne connais pas le VBA)

D'avance merci pour vos lumières, et excellente année 2021 à tous !

PS : Je vous joint un fichier épuré et anonymisé pour une meilleure compréhension.
 

Pièces jointes

  • Transfert Picking - Test.xlsx
    52.1 KB · Affichages: 23

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour et meilleurs voeux,

Dans le fichier joint une solution par formule pour le remplissage du tableau.
Un nom créé : LaColonne, définit avec par cette formule :
Code:
=SI('Bulletin de réapro Auto'!$B$4>0;DECALER('Base de données'!$H$8:$XFD$507;0;EQUIV('Bulletin de réapro Auto'!$B$4;'Base de données'!$H$7:$XFD$7;0)-1;;1);NA())
qui trouve la colonne de la base de données correspondant à la date en B4 de la feuille'réapro Auto'.
En colonne A du bulletin de réapro, la formule :
Code:
=SIERREUR(AGREGAT(15;6;'Base de données'!$A$8:$A$507/(LaColonne<>0);LIGNE(1:1));"")
qui permet d'appliquer une recherche par la fonction 'Petite.Valeur' (valeur 15 du premier argument) et de retourner le numéro de ligne correspondant à l'item trouvé en colonne A de la base de données.
Une fois ce numéro trouvé, il ne reste qu'à utiliser la fonction INDEX sur les bonnes colonnes de la base de données.

cordialement
 

Pièces jointes

  • Transfert Picking - Test.xlsx
    52.9 KB · Affichages: 14

Varenshar

XLDnaute Nouveau
Oh merde ! Je ne m'attendais pas à une réponse aussi rapide et aussi efficace, répondant aussi bien à mon besoin initial !
Je ne sais comment te remercier hbenalia, sinon en te souhaitant une excellente année 2021 !

Je n'ai pas réussi à importer ni recopier ton exemple sur mon fichier original, mais en faisant l'inverse ça fonctionne tout autant ! Encore merci !
 

Varenshar

XLDnaute Nouveau
@hbenalia :
J'ai retenu ta solution qui me convient parfaitement, encore merci.
Cependant, si ce n'est pas trop abuser de ma part, étant donné qu'il s'agit de fonction, combinées de surcroit, que je ne connais pas, serait-il possible que toi ou qqn d'autre d'ailleurs m'en explique la syntaxe et le fonctionnement?

D'avance merci.
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 924
Membres
101 841
dernier inscrit
ferid87