etiquettes à imprimer en X fois via publipostage Word , avec base de données Excel

chris427

XLDnaute Junior
Bonjour à tous,

J'ai des étiquettes (pas des adresses, mais d'autres informations) à imprimer.
J'ai créé ma base de données Excel.
Je n'ai aucun problème pour faire un publipostage avec 1 étiquette par données (avec 3 champs par étiquette) dans Word.
Ce que je voudrais c'est lorsque je "modifie la liste des destinataire", que je puisse sélectionner les données que je veux mais EGALEMENT LE NOMBRE d'ETIQUETTES.
Par exemple (ce n'est pas tout le temps pareil), je veux imprimer 1 étiquettes de la donnée n° 1, 10 étiquettes de la donnée n° 2, 3 étiquettes de la donnée n° 3, etc...

Comme je n'ai rien trouvé sur les divers et nombreux tuto de publipostage sur word, je me demandais s'il fallait que je passe par une programmation ou une macro sur Excel.

Pensez-vous que cela soit possible ?

Merci par avance pour votre aide,

Christine
 

chris

XLDnaute Barbatruc
Re : etiquettes à imprimer en X fois via publipostage Word , avec base de données Exc

Bonjour

Ce n'est pas prévu mais si tu ajoutes une colonne dans Excel avec le nombre d'étiquettes voulues pour la ligne, il y a sans doute moyen d'utiliser un champ "si alors sinon" et d'y imbriquer le passage à l'enregistrement suivant en fonction de ce nombre.
 

chris427

XLDnaute Junior
Re : etiquettes à imprimer en X fois via publipostage Word , avec base de données Exc

Allo Chris,

C'est exactement ça.
Mais aprés avoir rentré la quantité demandée pour chaque etiquette, il faudrait executer une macro,
Pour ajouter 9 lignes identiques à la ligne où on a rentré la quantité de 10.
Word recevra alors, lors de la fusion avec le template, le bon nombre d'etiquettes qui est egal au nombre de lignes.

Je joins un fichier pour que ça soit plus clair.

Merci,

Christine
 

chris427

XLDnaute Junior
Re : etiquettes à imprimer en X fois via publipostage Word , avec base de données Exc

Allo Allo,

Quelqu'un pourrait m'aider à créer la macro pour ce problème ?
Ca serait quelque chose du genre : Si D4=X, créer (X-1) lignes identiques à la ligne 4
Mais il faudrait que la macro execute la formule pour plus de 100 lignes, en une seule fois.

Merci par avance,

Christine
 

chris

XLDnaute Barbatruc
Re : etiquettes à imprimer en X fois via publipostage Word , avec base de données Exc

Bonjour

J'étais plutôt partie sur une solution côté Word : pour une macro Excel, tu aurais pu poster sur le forum Excel.

Ci-joins la macro.
 

Pièces jointes

  • bd_etiquettes.xlsm
    20.1 KB · Affichages: 668

chris427

XLDnaute Junior
Re : etiquettes à imprimer en X fois via publipostage Word , avec base de données Exc

Merci beaucoup Chris !!! Ca fonctionne vraiment bien.

Par contre, je suis curieuse d'une éventuelle solution avec Word. Avais-tu déjà trouvé ?

Je suis d'accord pour le forum Excel, c'est juste que l'idée de la macro pour ajouter des lignes m'est venue plus tard, suite à ton premier message.

Bonne journée !

Christine
 

chris

XLDnaute Barbatruc
Re : etiquettes à imprimer en X fois via publipostage Word , avec base de données Exc

Bonjour

Il y a effectivement une solution Word : pas très simple car il faut gérer des signets mais surtout il faut configurer non pas une page d'étiquettes mais autant de pages que le maximum imprimable en une fois (si tu imprimes 100 étiquettes avec une planche de 20/page, il faut 5 pages de prédéfinies) car les règles ne se reportent pas automatiquement au delà de la limite du document.

Vu le volume que tu envisages, la macro Excel est plus simple.
 

Lyn

XLDnaute Nouveau
Re : etiquettes à imprimer en X fois via publipostage Word , avec base de données Exc

Bonjour à tous,

J'ai le même cas de figure donc je ne sais pas s'il fallait que j'ouvre un nouveau sujet. Je ne parviens pas à utiliser la macro qui a été transmise, je suis sous Excel 2007, pourriez-vous m'en dire plus sur la solution sous Word avec les signets ?

Merci,
 

Lyn

XLDnaute Nouveau
Re : etiquettes à imprimer en X fois via publipostage Word , avec base de données Exc

Bonjour chris,

Voici un exemple en pièce jointe, ce n'est pas le fichier complet mais donne un bon aperçu. Là par exemple il me faudrait 35 étiquettes avec le mot "jacinthes", 79 avec "tulipes", etc...
Je ne sais pas utiliser les macros donc je recherche une solution sous Word ou Excel, du moment que ça marche :)
 

Pièces jointes

  • Etiquettes plantes.xlsx
    8.2 KB · Affichages: 266

JCGL

XLDnaute Barbatruc
Re : etiquettes à imprimer en X fois via publipostage Word , avec base de données Exc

Bonjour à tous,

Avec le code de Chris que je bise :

VB:
Option Explicit

Sub prepa_publi()
Dim Compteur As Double, i%, x%


    Compteur = 1
    With Feuil2
        .Cells.ClearContents
        For i = 2 To Feuil1.Cells(65000, 1).End(xlUp).Row
            x = Feuil1.Cells(i, 2).Value - 1
            Feuil1.Range("A" & i).Copy Destination:=.Range("A" & Compteur & ":A" & Compteur + x)
            Compteur = Compteur + x + 1
        Next i
    .Activate
    .Cells.Columns.AutoFit
    End With
End Sub

A + à tous
 

Pièces jointes

  • Etiquettes plantes.xlsm
    20.1 KB · Affichages: 361
  • Etiquettes plantes.xlsm
    20.1 KB · Affichages: 326
  • Etiquettes plantes.xlsm
    20.1 KB · Affichages: 392

marche

XLDnaute Nouveau
Re : etiquettes à imprimer en X fois via publipostage Word , avec base de données Exc

Bonjour, la macro est quasi parfaite sauf quand la quantité demandée est zéro.... Y a t il un moyen d'ajouter une demande?
En effet lorsque l'on met zéro la ligne du dessus est copiée n-1 fois sachant que l'on en souhaitait n... De plus ma dernières lignes est toujours renseignée en plus à la fin. J'ai utilisé pour exemple le fichier bd_etiquette.
Je suis une bille en VBA, alors par avance merci
 

JCGL

XLDnaute Barbatruc
Re : etiquettes à imprimer en X fois via publipostage Word , avec base de données Exc

Bonjour à tous,

Bienvenue sur XLD

Peux-tu essayer avec :

VB:
Option Explicit

Sub prepa_publi()
Dim Compteur As Double, i%, x%

    Compteur = 1
    With Feuil2
        .Cells.ClearContents
        For i = 2 To Feuil1.Cells(65000, 1).End(xlUp).Row
            x = Feuil1.Cells(i, 2).Value - 1
            If x = -1 Then GoTo 1
            Feuil1.Range("A" & i).Copy Destination:=.Range("A" & Compteur & ":A" & Compteur + x)
1            Compteur = Compteur + x + 1
        Next i
    .Cells.Columns.AutoFit
    End With
End Sub

A+ à tous
 

Discussions similaires

Statistiques des forums

Discussions
312 161
Messages
2 085 857
Membres
103 005
dernier inscrit
gilles.hery