Aide publipostage

Carine13

XLDnaute Nouveau
Bonjour à tous,

Voici mon problème

Je dispose dans un fichier Excel de 500 numéros de série (1 par ligne sur 500 colonnes)
Je souhaite les imprimer avec Word sur un modèle d'étiquette définie
C'est relativement simple, seulement j'ai besoin d'imprimer chaque numéro de série en 3 exemplaires sur des étiquettes séparées et là je coince.
Hormis copier chaque numéro de série dans Excel en 3 exemplaires, l'un à la suite de l'autre soit 1500 numéros de série je n'arrive pas à automatiser cela

J'attends vos réponses

Merci d'avance
 

Carine13

XLDnaute Nouveau
Re : Aide publipostage

Bonjour PierreJean

Merci pour votre aide

Voici donc le fichier excel avec les données
Voici le résultat du publipostage sur Word : en fait je souhaite que sur Word le même numéro de série soir répeter sur 3 étiquettes et non sur une sans si possible toucher à mon fichier de base sur Excel (ou alors automatiser pour fichier Excel afin d'obtenir le résultat souhaité)

J'attends votre solution

Carine
 

Pièces jointes

  • FM.zip
    4.9 KB · Affichages: 31

RICO1972

XLDnaute Occasionnel
Re : Aide publipostage

Salut Carine13 et PierreJean

j'ai pris le pb à l'envers : je propose de tri(??)pliquer ta base excel avec une macro qui peut être largement améliorée :
Sub Macro1()
'
' Macro1 Macro
Sheets("feuil1").Select ' feuille ou se situe la base
Range("A2:B2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("Feuil2").Select ' feuille ou tu veux dtripliquer tes données
Range("A2").Select
ActiveSheet.Paste
Range("A3").Select

Selection.End(xlDown).Select
Selection.Offset(1, 0).Activate
ActiveSheet.Paste

Selection.End(xlDown).Select
Selection.Offset(1, 0).Activate
ActiveSheet.Paste

Range("A2:B2").Select
Range(Selection, Selection.End(xlDown)).Select

Selection.Sort Key1:=Range("B2"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End Sub


Ensuite tu fais ton publipostage sur la feuille 2.
Espérant que cela t'aidera ...
@+
RICO
 

RICO1972

XLDnaute Occasionnel
Re : Aide publipostage

re , je comprends pas il se répète à la fin de la série ??
normalement la macro fait un tri sur le critère FM ... tu devrais avoir les numéros de série (3fois) qui se suivent .
Si tu préfères trier par le num de série tu changes ce code ds la macro :

Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal

Sinon explique moi plus dans le détail.
RICO
 

Carine13

XLDnaute Nouveau
Re : Aide publipostage

Merci Pierrejean et Rico de votre aide

Mon autre petit souci, je souhaiterais que lors de mon publipostage, les 3 exemplaires du premier numéro de série se retrouvent l'un en dessous de l'autre et non à la suite et cela dans des étiquettes différentes.
Par défaut, ils se retrouvent l'un à coté de l'autre

Merci de me dire si cela est possible

Carine
 

RICO1972

XLDnaute Occasionnel
Re : Aide publipostage

Re Carine13
voilà la code :

Sub prepa()
ligne = 2
For n = 2 To Sheets("Feuil1").Range("A65536").End(xlUp).Row Step 5
For m = 1 To 3
Sheets("Feuil2").Range("A" & ligne) = Sheets("Feuil1").Range("A" & n)
Sheets("Feuil2").Range("A" & ligne + 1) = Sheets("Feuil1").Range("A" & n + 1)
Sheets("Feuil2").Range("A" & ligne + 2) = Sheets("Feuil1").Range("A" & n + 2)


Sheets("Feuil2").Range("B" & ligne) = Sheets("Feuil1").Range("B" & n)
Sheets("Feuil2").Range("B" & ligne + 1) = Sheets("Feuil1").Range("B" & n + 1)
Sheets("Feuil2").Range("B" & ligne + 2) = Sheets("Feuil1").Range("B" & n + 2)

ligne = ligne + 3
Next m
Next n
End Sub


Pierre jean a fait tout le boulot ... c'est à lui que doivent revenir les remerciements ...
@+RICO
 

pierrejean

XLDnaute Barbatruc
Re : Aide publipostage

re

je crois que c'est presque cela

moi j'ai testé

Code:
Sub prepa()
ligne = 2
For n = 2 To Sheets("Feuil1").Range("A65536").End(xlUp).Row Step 3
For m = 1 To 3
Sheets("Feuil2").Range("A" & ligne) = Sheets("Feuil1").Range("A" & n)
Sheets("Feuil2").Range("A" & ligne + 1) = Sheets("Feuil1").Range("A" & n + 1)
Sheets("Feuil2").Range("A" & ligne + 2) = Sheets("Feuil1").Range("A" & n + 2)
Sheets("Feuil2").Range("B" & ligne) = Sheets("Feuil1").Range("B" & n)
Sheets("Feuil2").Range("B" & ligne + 1) = Sheets("Feuil1").Range("B" & n + 1)
Sheets("Feuil2").Range("B" & ligne + 2) = Sheets("Feuil1").Range("B" & n + 2)
ligne = ligne + 3
Next m
Next n
End Sub

difference : step 3 et non plus 5
 

Discussions similaires

Statistiques des forums

Discussions
312 672
Messages
2 090 776
Membres
104 663
dernier inscrit
Girondins43