Bonjour à toutes et tous,
Depuis un outil de prise de commandes, j'exporte les données concernant toutes les commandes dans un fichier Excel nommé "Export".
Les données sont entre autre : le n° de commande, le nom et les coordonnées du client, la référence, la désignation, la quantité et le prix de chaque article commandé, etc (43 colonnes au total) cf. image ci-dessous colonnes C à J.
Seulement, lorsqu'un client commande plusieurs articles, les données concernant la référence, la désignation, la quantité et le prix de chaque article commandé sont inscrites sur autant de lignes qu'il y a d'articles.
Donc une commande peut avoir 1 ligne (1 article commandé) comme 12 lignes (12 articles commandés).
Pour une commande d'1 article, chaque champ correspondant au n° de commande, nom et coordonnées du client, à la référence, à la désignation, à la quantité et au prix l'article commandé est renseigné.
En revanche, dès qu'il y a plusieurs lignes, chaque champ correspondant au n° de commande, nom et coordonnées du client n'est renseigné que sur la première ligne. Sur les lignes suivantes ces champs sont vides (ni 0, ni caractère que quelque forme soit-il).
Je récupère dans mon fichier de travail (par macro) l'ensemble des données concernant toutes les commandes. J'ai rajouté une 44 ème colonne (colonne B image ci-dessous) afin que pour chaque ligne vide du champ N° de commande remonte automatiquement le N° de commande.
Mon problème est le suivant :
Lorsque la référence d'un article débute par L je dois imprimer une étiquette sur laquelle sont repris les champs n° de commande, nom et coordonnées du client. j'ai pour cela un TCD qui me permet d'extraire les données souhaitées.
J'ai créé une colonne (colonne L) qui me permet de tester si la référence de l'article commence par L. Si c'est le cas, la formule renvoie le chiffre 1, sinon elle renvoie 0.
Le TDC filtre sur ce 1, pour extraire les champs n° de commande, nom et coordonnées du client. Cela ne pose pas de problème lorsque le premier article commandé a une référence commençant par L.
En revanche rien ne va plus si la référence du premier article commandé ne commence pas par L.
Donc, j'ai adapté ma formule afin de me permettre de "remonter" le chiffre 1 en première ligne et ainsi d'avoir, quelle que soit la place de la référence avec L, dans mon TCD les champs renseignés correctement et non pas renseignés (vide).
Cette formule fonctionne sauf dans un cas, c'est lorsqu'il y a 2 articles et plus de commandés et qu'aucun n'a une référence commençant par L.
La colonne M "Attendu" correspond à ce que je souhaite voir apparaître dans la colonne L. Les 2 cellules en rouge montre que la formule ne fonctionne pas correctement.
Mais je ne sais résoudre ce problème.
Voici la formule :
La colonne K me permet de connaître le nombre de lignes concernant une commande donnée.=SI(K2=1;SI(STXT($G2;1;1)="L";1;0);SI(B2<>B1;1;0))
+NB.SI(B$2:B$39;B2)
Merci pour votre aide.
Philippe
Partager