Publipostage, macro Excel vers word et génération du rapport

Bonjour , Tout le monde j'ai un fichier excel de plusieurs lignes et j'aimerai pour chaque ligne générée une fiche et regrouper tous dans un rapport. pouvez vous m'aider je n'arrive pas à le faire malgré que je trouve des choses sur internet, je vous joint mon fichier excel et word dans lequel vous trouverez l'endroit ou je veux insérer mes cellules

100nouveau-dossier.zip (298.34 Ko)

Bonjour

ça me rappelle bizaremment quelque chose....

https://forum.excel-pratique.com/excel/generer-rapport-word-t43122.html

oui mais cela par word moi je veux en faire par macro depuis excel

je comprend pas ton raisonnement

Tu fais prépares ton wordune bonne fois pour toutes et apres en avant , ça se fera tout seul, je n'arrive pas à comprendre, tu veux mettre en forme ton word avec du vba à partir d'excel???

j'ai pas compris comme ça va le faire tous seul, c'est à dire qu'il faut à chaque fois préparer le publipostage avant d'avoir les rapport


j'ai utilisé ton tuto mais j'arrives pas à avoir les noms des mes champs qui se trouvee en ligne 2, j'ai juste la ligne 1

en préparant ton word comme il faut, lorsque tu lanceras ta fusion ,tu obtiendra un doc avec autant de page que tu as de ligne dans excel

Dans excel, il faut qu'en ligne 1 tu ai tes intitulés de colonnes (site , agence etc...), donc ta ligne fusionné dans ta feuille pose probleme car pour la suite tu ne verra pas tes intitulés de colonne (à la place tu aura F2, F3 etc) donc pour ma part tu la supprimes.

dans word qd tu prépares ton doc , a l'endroit où tu veux mettre le centre et qui correspond à la colonne A de ton excel, tu met la "balise" (je sais pas si c'est le bon terme) intitulé «n_zone»

pareil pour renseigner l'agence d'exploitationdont l'intitulé de la colonne dans excel est "agence" en AL, la balise dans word sera «Agence»

et ainsi de suite

Voila j'ai renseigné ton fichier doc comme il faut,

il faudra peut etreque tu renseigne le chemin du fichier excel en ouvrant le word une fois sur ton pc

pense à afficher la barre d'outils fusion et publipostage afin de pouvoir naviguer entre les différentes entré de ton tableau excel.

Ai à l'esprit que tu peux lancer l'impression ou la creation du rapport depuis excel grace à la fonction MailMerge (sous condition d'avoir activéla référence microsoft word object dans l'éditeur vba)

298nouveau-dossier.zip (265.33 Ko)

désolé mais j'ai déjà fiat cea et j'ai bien le rapport je veux l'imprimer par un macro sans ouvrir Word

recherche les argument du parametre execute de mailmerge qui te permet de faire la fusion vers une imprimante

Merci ça fonctionne

Cool, tu y es arrivé!!!

Peux tu partagé ton expérience et ton code afin que les autres en profite s'il te plait??

A bientôt

bien sur sachant que m^me moi je l'ai chopé d'un site internet je me rappelle pas de lien , une fois que le publipostage est effectué comme tu m'as expliqué, ce code permet d'imprimer le rapport depuis un macro excel. il faudra just spécifier les liens vers les deux fichiers excel et word . et activer dans editor vba outils ->réferences -> Microsoft Word 12.0 Object Library . Merci à toi

Sub imprimer()
    'Nécessite d'activer la référence "Microsoft Word xx.x Object Library"
    Dim docWord As Word.Document
    Dim appWord As Word.Application
    Dim NomBase As String

    NomBase = "C:\Users\AA0B554N\Desktop\Stage_Projets_f\Registre ILD AFC FCC V7 FCC Besançon.xls"

    Application.ScreenUpdating = False
    Set appWord = New Word.Application
    appWord.Visible = True
    'Ouverture du document principal Word
    Set docWord = appWord.Documents.Open("C:\Users\AA0B554N\Desktop\Stage_Projets_f\Fiche de pose DDD.docx")

    'fonctionnalité de publipostage pour le document spécifié
    With docWord.mailMerge
        'Ouvre la base de données
        .OpenDataSource Name:=NomBase, _
            Connection:="Driver={Microsoft Excel Driver (*.xls)};" & _
            "DBQ=" & NomBase & "; ReadOnly=True;", _
            SQLStatement:="SELECT * FROM [Registre PPI AFC apres visite$]"
        'Spécifie la fusion vers l'imprimante
        .Destination = wdSendToPrinter
        .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

    Application.ScreenUpdating = True

    'Fermeture du document Word
    docWord.Close False
    appWord.Quit
End Sub
Rechercher des sujets similaires à "publipostage macro word generation rapport"