Traitement liste- recopie multiple - export fichier - publipostage

hctad1

XLDnaute Junior
Bonjour à tous,
voici la présentation d'un de mes besoins de production.
J’ai un fichier excel que nous utilisons le matin pour éditer la liste des produits à sortir du stock pour préparer les commandes du jours.

J’ai 2 feuilles nommées respectivement KO et OK.
OK représente la liste des produits à prendre pour les commandes complètes (les plus urgentes) .

KO est la liste des produits des commandes qui partent pas (y compris les produits dont le stock est négatif). Ces commandes sont préparées plus tard dans la journée.

Le fichier xls est en fait un outil qui nous permet de générer les requetes mysql en partant de la dernière commande imprimée, nous faisons ensuite un copie coller pour travailler dans excel.

NOUVELLE FONCTION : je souhaiterais aussi imprimer une liste d’étiquette pour coller sur mes produits en fonction de la liste de picking et du stock.

Prenons le cas de la feuille OK
REF------------PRODUIT----------------------------------A PRENDRE-------STOCK
0722-30-------CABLE DE COMPTEUR 1959-1976 VISSE ( 76cm)--1---------0
GTG101MS ---JOINT DE CLOCHE DE CALORSTAT (ADAPTABLE)---3--------28
GWW1080 ---GICLEUR DE LAVE-GLACE NOIR (SIMPLE JET)------3--------(-1)​


Je voudrais générer un tableau de la forme suivante :
On repete chaque produit autant de fois qu'il nous est demandé
0722-30 CABLE DE COMPTEUR 1959-1976 VISSE ( 76cm)
GTG101MS JOINT DE CLOCHE DE CALORSTAT (ADAPTABLE)
GTG101MS JOINT DE CLOCHE DE CALORSTAT (ADAPTABLE)
GTG101MS JOINT DE CLOCHE DE CALORSTAT (ADAPTABLE)
GWW1080 GICLEUR DE LAVE-GLACE NOIR (SIMPLE JET)
GWW1080 GICLEUR DE LAVE-GLACE NOIR (SIMPLE JET)​

On remarquera que je n’ai fait ressortir le gicleur de lave que 2 fois pourtant on m’en demandait 3… oui mais...je n’en ai que 2 en stock.

Donc cela veut dire qu’avant de répéter la ligne on regarde -->
si stock<0 alors je repete (‘a prendre’+’stock’) fois la ligne
sinon
je répète (‘a prendre’) fois la ligne

Je souhaite ensuite sauvegarder la feuille ainsi crée dans un fichier xls nommé etiquette_produits_OK.xls
Enfin avec word, je fais un joli publipostage et je peux imprimer mes étiquettes.:)



Pour ce qui concerne la liste KO, c’est la même chose et on enregistre dans un fichier nommé etiquette_KO.xls
Bien sur si je doit prendre 5 GICLEURS et que mon stock est à -6, j’ignore la ligne et je passe a la suivante car je n'ai aucun produit sur lequel coller mon étiquette.

Je mets en pièce jointe l’essai que j’ai commis. Vous verrez que j'ai essayé de passer par plusieurs feuilles pour séparer les étapes mais mon système ne fonctionne vraiment pas.

Je commence a me débrouiller un petit peu en php mais VBA est vraiment au dessus de mes moyens actuels.
J’ai passé la journée à essayer et je n’arrive à rien.

Cela semble être relativement simple lorsque c’est énoncé mais traduire tout ça en code m’est vraiment impossible.

Si l’un d’entre vous à le courage d’y jeter un œil je lui en serais vraiment gré.

Bien cordialement,
Nicolas
 

Pièces jointes

  • PROTOTYPE Impression BL NEW.xls
    44 KB · Affichages: 108
Dernière édition:

hctad1

XLDnaute Junior
Re : Traitement liste- recopie multiple - export fichier - publipostage

Donc cela veut dire qu’avant de répéter la ligne on regarde -->
si stock<0 alors je repete (‘a prendre’+’stock’) fois la ligne
sinon
je répète (‘a prendre’) fois la ligne

donc cela donnerait qq chose comme ça
(‘a prendre’+’stock’) >0 on repete 'a prendre' fois la ligne
(‘a prendre’+’stock’) <=0 on repete pas la ligne

Par ailleurs, je n'arrive pas a inserer une ligne d'en-tete pour le fichier généré ce qui est ennuyeux pour le publipostage qui suit
par exemple : ref, designation.

Vraiment merci de votre attention.
Nicolas
 

Catrice

XLDnaute Barbatruc
Re : Traitement liste- recopie multiple - export fichier - publipostage

Re,

Essaie en modifiant la ligne IIf comme ceci :
For i = 1 To IIf(X.Offset(0, 3) + X.Offset(0, 2) > 0, X.Offset(0, 2), 0)

(‘a prendre’+’stock’) >0 on repete 'a prendre' fois la ligne
Cela dit, si ton "stock" = -3 et "à prendre" = 4 => tu vas avoir 4 étiquettes. C'est normal ?

Je ne comprends pas la question concernant la ligne d'entete.
Les entetes sont bien créés chez moi ?!

Pourquoi ne fait tu pas un publipostage direct dans Word ?
Dans ce genre : https://www.excel-downloads.com/threads/excel-word.117365/
 
Dernière édition:

hctad1

XLDnaute Junior
Re : Traitement liste- recopie multiple - export fichier - publipostage

Bon...
Avec un peu d'astuce et d'espièglerie je commence à y voir un poil plus clair dans les macros...
la ligne d'en tête--> c'est résolu.
la requete pour l'affichage c'est résolu aussi:
For i = 1 To IIf(X.Offset(0, 3) + X.Offset(0, 2) >= X.Offset(0, 2), X.Offset(0, 2), X.Offset(0, 2) + X.Offset(0, 3))

Si je voulais faire pointilleux je dirais que cette requete tourne sur deux feuilles (KO et OK, respectivement feuil4 et 5) et par conséquent j'ai un doublon dans le code sur ma liste d'exceptions a ne pas imprimer.Puisque je les déclare deux fois.
Ce serait sans doute plus élégant de la déclarer en amont. Autant dire que je n'ai aucune idée de comment cela se ferait en vba.
en tous cas merci Catrice de ton aide. cet outil va nous être utile.
Nicolas
 

hctad1

XLDnaute Junior
Re : Traitement liste- recopie multiple - export fichier - publipostage

La bonne réponse était en fait pour le nombre d'itérations a faire en fonction du stock :
For i = 1 To IIf(X.Offset(0, 6) >= 0, (X.Offset(0, 5) + X.Offset(0, 6) - X.Offset(0, 6)), (X.Offset(0, 5) + X.Offset(0, 6)))

(y a maintenant 3 colonnes de plus qu'avant --> etagere -etage - rang )
 

hctad1

XLDnaute Junior
Re : Traitement liste- recopie multiple - export fichier - publipostage

Je ne comprends pas la question concernant la ligne d'entete.
Les entetes sont bien créés chez moi ?!
oui en effet, moi aussi maintenant.
Pourquoi ne fait tu pas un publipostage direct dans Word ?
Dans ce genre : https://www.excel-downloads.com/threads/excel-word.117365/
Oula, comme tu y vas... J'ai regardé le code pour publiposter dans word et c'est pas vraiment de mon niveau. On en reparle dans 10 ans.
Plus sérieusement, on va laisser vivre un peu le truc et voir que nous devons modifier avant de nous lancer dans quelque chose de plus costaud.
Bon....Minuit: ça fait un bout de temps que je suis la dessus (et tjrs au bureau), j'me casse.
A très bientot.
nicolas