IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Intégrer dans un PDF un fichier Excel et un document Word


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Femme Profil pro
    Formatrice bureautique
    Inscrit en
    Septembre 2007
    Messages
    202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 47
    Localisation : Suisse

    Informations professionnelles :
    Activité : Formatrice bureautique

    Informations forums :
    Inscription : Septembre 2007
    Messages : 202
    Points : 79
    Points
    79
    Par défaut Intégrer dans un PDF un fichier Excel et un document Word
    Hello l'équipe,

    Je suis en train de travailler sur un document Excel qui contient des macros et qui est une offre client. En parallèle, j'ai un modèle de lettre Word à compléter... Jusque là, je pense pouvoir me débrouiller pour faire le lien entre Excel et Word...

    Par contre, savez-vous s'il est possible depuis ma macro Excel de créer un PDF qui reprend mon fichier Excel en cours ainsi que le modèle de lettre qui sera généré avec la macro et complété...

    Ces deux fichiers dans un seul PDF ? Je vois pas du tout comment mais depuis Acrobat, on peut bien ajouter des documents dans un PDF et tout type de document donc ca doit être possible également depuis Excel par le VBA ???

    Si quelqu'un a une voie... je suis preneuse

    Merci d'avance et toute belle journée,

    Caro

  2. #2
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, Office 2007 intègre en natif la génération de documents au format PDF, donc avec peut-être ceci , il y a 2 échantillons de code pour la fusion de fichiers PDF, un avec Acrobat Distiller , l'autre avec PDFCreator

    Pour le pilotage de Word depuis Excel voir ici

  3. #3
    Membre régulier
    Femme Profil pro
    Formatrice bureautique
    Inscrit en
    Septembre 2007
    Messages
    202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 47
    Localisation : Suisse

    Informations professionnelles :
    Activité : Formatrice bureautique

    Informations forums :
    Inscription : Septembre 2007
    Messages : 202
    Points : 79
    Points
    79
    Par défaut
    Merci Kiki29,

    C'est absolument génial tous les exemples. D'après ce que je vois, je pourrais lancer une macri qui créée un fichier PDF de mon document word puis un pdf qui créée mon document Excel puis utiliser la macro pour fusionner les documents pdf word et excel...

    Mais comme je n'ai pas forcéement besoin d'avoir le pdf word et le pdf Excel, est-ce qu'il y aurait une solution pour immédiatement créer le pdf qui contient le document Word et le document Excel sans devoir les créer en pdf individuellement au préalable ?

    Merci pour tes précisions...

  4. #4
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, à priori non, il faut procéder par étapes :
    Piloter Word depuis Excel pour remplir je suppose des champs Word
    Générer le PDF Word
    Générer le PDF Excel
    Fusionner les 2 PDF
    Détruire les 2 Pdf Word et Excel via un Kill

  5. #5
    Membre régulier
    Femme Profil pro
    Formatrice bureautique
    Inscrit en
    Septembre 2007
    Messages
    202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 47
    Localisation : Suisse

    Informations professionnelles :
    Activité : Formatrice bureautique

    Informations forums :
    Inscription : Septembre 2007
    Messages : 202
    Points : 79
    Points
    79
    Par défaut Adaptation de ce code pour créer mon fichier PDF Word
    Rehello,

    J'utilise ce bout de code pour créer mon fichier Excel en pdf.

    Est-ce que je pourrais utiliser ce même code en l'adaptant pour créer le pdf du fichier Word depuis ma macro Excel ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    Function PDFExcel(Myvar As Object, FixedFilePathName As String, _
                            OverwriteIfFileExist As Boolean, OpenPDFAfterPublish As Boolean) As String
        Dim FileFormatstr As String
        Dim Fname As Variant
        Dim FileExcel As String
     
        FileExcel = InputBox("Nom du fichier ?")
     
        'Test If the Microsoft Add-in is installed
        If Dir(Environ("commonprogramfiles") & "\Microsoft Shared\OFFICE" _
             & Format(Val(Application.Version), "00") & "\EXP_PDF.DLL") <> "" Then
     
            If FixedFilePathName = "" Then
                'Open the GetSaveAsFilename dialog to enter a file name for the pdf
                FileFormatstr = "PDF Files (*.pdf), *.pdf"
                Fname = Application.GetSaveAsFilename(FileExcel, filefilter:=FileFormatstr, _
                                                      Title:="Create PDF")
     
                'If you cancel this dialog Exit the function
                If Fname = False Then Exit Function
            Else
                Fname = FixedFilePathName
            End If
     
            'If OverwriteIfFileExist = False we test if the PDF
            'already exist in the folder and Exit the function if that is True
            If OverwriteIfFileExist = False Then
                If Dir(Fname) <> "" Then Exit Function
            End If
     
            'Now the file name is correct we Publish to PDF
            On Error Resume Next
            Myvar.ExportAsFixedFormat _
                    Type:=xlTypePDF, _
                    FileName:=Fname, _
                    Quality:=xlQualityStandard, _
                    IncludeDocProperties:=True, _
                    IgnorePrintAreas:=False, _
                    OpenAfterPublish:=OpenPDFAfterPublish
            On Error GoTo 0
     
            'If Publish is Ok the function will return the file name
            If Dir(Fname) <> "" Then PDFExcel = Fname
        End If
    End Function

  6. #6
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Re, je viens de faire un essai "brut de fonderie" avec depuis Excel : remplissage bidon d'un champ d'un doc word, génération du Doc en pdf puis fusion et cela baigne

    Pour le remplissage du doc Word depuis Excel, j'ai fait ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    Option Explicit
     
    Private Sub Donnees_ChampWord_PDF()
    'Nécessite d'activer la référence "Microsoft Word xx.x Object Library"
    Dim WordApp As Word.Application
    Dim WordDoc As Word.Document
    Dim sNomPDF As String
     
        Set WordApp = New Word.Application
        Set WordDoc = WordApp.Documents.Open(ThisWorkbook.Path & "\" & "Test.doc")
        WordApp.Visible = False
     
        WordDoc.Fields(1).Result.Text = Feuil1.Range("A1")
     
        sNomPDF = "Word Doc1.pdf"
        WordDoc.ExportAsFixedFormat _
                OutputFileName:=ThisWorkbook.Path & "\" & sNomPDF, _
                ExportFormat:=wdExportFormatPDF, _
                OpenAfterExport:=False
     
        WordDoc.Close False
        WordApp.Quit
     
        Set WordDoc = Nothing
        Set WordApp = Nothing
    End Sub

  7. #7
    Membre régulier
    Femme Profil pro
    Formatrice bureautique
    Inscrit en
    Septembre 2007
    Messages
    202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 47
    Localisation : Suisse

    Informations professionnelles :
    Activité : Formatrice bureautique

    Informations forums :
    Inscription : Septembre 2007
    Messages : 202
    Points : 79
    Points
    79
    Par défaut
    Hello Kiki,

    Pourrais-tu m'envoyer tes fichiers Exemples afin que je puisse décortiquer le code car j'ai essayer mais j'ai une erreur sur la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    WordDoc.ExportAsFixedFormat _
    OutputFileName:=ThisWorkbook.Path & "\" & sNomPDF, _
    ExportFormat:=wdExportFormatPDF, _
    OpenAfterExport:=False
    Je t'ai envoyé un mail sur ton adresse privée donc tu as mon adresse mail.

    Merci d'avance,

    CAro

  8. #8
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, tu es en Late Binding ( pas de référence cochée pour "Microsoft Word xx.x Object Library" ), et cela génère une erreur contrairement à ce qui se passe en Early Binding.

    En fait il faut remplacer dans

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        WordDoc.ExportAsFixedFormat _
                OutputFileName:=ThisWorkbook.Path & "\" & sNomPDF, _
                ExportFormat:=wdExportFormatPDF, _
                OpenAfterExport:=False
    wdExportFormatPDF par sa valeur : 17 et cela fonctionnera en Late Binding

Discussions similaires

  1. Réponses: 5
    Dernier message: 29/01/2011, 20h19
  2. Réponses: 1
    Dernier message: 15/05/2009, 13h07
  3. insertion dans sql serveur depuis fichier excel
    Par label55 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 26/03/2009, 13h52
  4. [FPDF] Portion de HTML à intégrer dans un PDF généré
    Par Just dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 26/02/2008, 20h10
  5. [VBA-A] Pb de type dans l'Importation de fichier Excel
    Par afossier dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/04/2006, 11h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo