Faire un publipostage sur excel

loulette

XLDnaute Nouveau
Bonjour,

Je voudrais savoir si il est possible de faire un publipostage sur excel.

J'ai créer un modèle de facture, et j'aimerais ne pas à avoir à taper à chaque fois le nom des clients, est ce possible ?

Merci à vous !
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Faire un publipostage sur excel

Bonjour loulette
Je voudrais savoir si il est possible de faire un publipostage sur excel.
au bas de cette page que tu es en train de lire se trouvent des liens vers des fils de discussion similaires
J'ai peut-être mal compris ta question.................mais publiposter une facture, je n'ai jamais vu

J'ai créer un modèle de facture, et j'aimerais ne pas à avoir à taper à chaque fois le nom des clients, est ce possible ?
il te faut dans ton fichier excel une feuille qui contient les données de tout tes clients

voir exemple en pièce jointe

à+
Philippe
 

Pièces jointes

  • 111.xls
    17 KB · Affichages: 2 188
  • 111.xls
    17 KB · Affichages: 2 242
  • 111.xls
    17 KB · Affichages: 2 253

Brigitte

XLDnaute Barbatruc
Re : Faire un publipostage sur excel

Bonjour,
Salut Philippe,

Pour une autre raison j'avais besoin (ou envie) de faire un publipostage depuis excel.
J'ai donc un doc excel que je remplis (une ligne/contenu = 1 boîte archives = 1 étiquette à faire).
J'ai un autre doc word formaté en 4 étiquettes (j'ai des planches de 4 mais dans ton cas, ca pourrait être tout à fait un 21/29,7).

J'ouvre donc désormais le doc excel, le remplis, mets une croix dans la colonne prévue qui signifie : je veux une étiquette ; puis je clique dans la barre d'outils qui s'ouvre (ou dans excel 2007/2010 dans les compléments) sur "créer étiquettes", ca me demande quel est le fichier word à utiliser (prendre soin de l'enregistrer auparavant et de faire une première fois la fusion vers excel à la main pour le chemin)... et ca fusionne en autant d'étiquettes (ou de documents dans ton cas) que de lignes avec la croix.

Je te donne la macro (de Renauder : encore merci à lui)

Code:
Sub Publipostage()
    Application.DisplayAlerts = False
    Application.ScreenUpdating = False
    Chemin = ActiveWorkbook.Path
    ' ***** INFOS IMPORTANTES ***************************************************
    ' Export des données dans un classeur temporaire pour éviter d'avoir
    ' une instance Excel qui reste dans la Liste des Tâches
    ' C'est ce document temporaire qui sera utilisé par Word lors de la fusion et
    ' évitera les inconvénients cités plus haut.
    ' ---------------------------------------------------------------------------
    Sheets(Array("Bord versement AI", "Listes")).Select
    Sheets(Array("Bord versement AI", "Listes")).Copy
    ActiveWorkbook.SaveAs Chemin & "\Temp.xls"
    ActiveWorkbook.Close savechanges:=False
    ' ***************************************************************************
    'Vérifier si il y a des croix présentes pour procéder au mailing
    Sheets("Bord versement AI").Activate
    Range([C2], [F65536].End(xlUp).Offset(0, -3)).Select
    NbreX = Application.CountIf(Selection, "x")
    If NbreX = 0 Then
        MsgBox "Il n'y a pas d'étiquette à extraire.", vbInformation + vbOKOnly
        Range("A1").Select
        Exit Sub
    End If
    ' Recherche du document Word servant au Publipostage
    '   ChDrive "C:\"
    ChDir ActiveWorkbook.Path
    FileMailing = Application.GetOpenFilename("Fichiers Word (*.doc), *.doc", , "Ouvrir le document Word pour le mailing d'étiquettes ...")
    If FileMailing = "Faux" Then End
    ' Ouverture de Word
    Dim AppWord As Word.Application
    Set AppWord = New Word.Application
    Application.ScreenUpdating = False
    AppWord.Visible = False    'True
    Set DocWord = AppWord.Documents.Open(FileMailing)
    NomBase = Chemin & "\Temp.xls"
    ' Ouverture de la base de données, passage des paramètres
    ' pour la requête et lancement du Publipostage
    With DocWord.MailMerge
        .OpenDataSource Name:=NomBase, _
                        Connection:="Driver={Microsoft Excel Driver (*.xls)};" & "DBQ=" & _
                                    NomBase & "; ReadOnly=True;", SQLStatement:="SELECT * FROM [Bord versement AI$] WHERE [ETIQUETTE] like 'x' OR [ETIQUETTE] like 'X'"
        'Spécifie la fusion vers un nouveau document (wdSendToPrinter= Vers l'imprimante)
        .Destination = wdSendToNewDocument
        .SuppressBlankLines = True
        'Prend en compte l'ensemble des enregistrements
        With .DataSource
            .FirstRecord = wdDefaultFirstRecord
            .LastRecord = wdDefaultLastRecord
        End With
        'Exécute l'opération de publipostage
        .Execute Pause:=False
    End With
    ' Activation du doucment principal de Publipostage et fermeture
    DocWord.Activate
    DocWord.Close savechanges:=False
    ' Affichage l'application Word
    AppWord.Visible = True
    Set DocWord = Nothing
    Set AppWord = Nothing
    ' Activation de l'onglet
    Sheets("Bord versement AI").Select
    ' Effacement du fichier temporaire crée spécialement pour la fusion
    Kill Chemin & "\temp.xls"
End Sub

et je te laisse ouvrir le zip qui contient :

- le fichier excel (qui pourrait ressembler à un tableau avec une ligne/facture)
- le fichier word (qui pourrait être la facture, ici une trame de 4 étiquettes)

Tu enregistres (si tu le souhaites donc) les deux, tu fusionnes le word avec le excel une première fois depuis word.
Puis tu remplis le doc excel avec n'importe quelle donnée (ici archives), tu mets une croix par ci par là... et tu cliques sur "créer étiquettes", ca devrait te montrer la puissance de la macro d'Eric.
 

Pièces jointes

  • BVAI et etiquettes archives fusion depuis excel.zip
    69.4 KB · Affichages: 701

Discussions similaires

Statistiques des forums

Discussions
312 305
Messages
2 087 077
Membres
103 455
dernier inscrit
saramachado