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 :

Impression PDF (Adobe Acrobat X Pro)


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Inscrit en
    Mai 2003
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 71
    Points : 52
    Points
    52
    Par défaut Impression PDF (Adobe Acrobat X Pro)
    Bonjour à tous,

    je travaille avec Windows 7, Office 2010 et Adobe Acrobat X Pro.
    Dans un fichier Excel, j'ai une macro qui me permet de générer des fichiers PDF à la volée (50 fichiers par ex, en mettant à jour les données d'une page, puis on imprime en PDF, puis on rechange les données etc). En fait, j'ai même 2 fichiers, qui utilisent des codes similaires :

    Code 1 :
    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
    Sub Print_PDF(Optional One_Page As Boolean = True)
    Dim ReportFolder As String, ReportName As String
    Dim DistillerFolder As String, PDFOutput As String
    Dim InvestedFolder As String
     
            InvestedFolder = "C:\Users\moi.meme\Documents\TestFiche\"
            DistillerFolder = "C:\Users\moi.meme\Documents\"
            Application.ActivePrinter = "Adobe PDF sur Ne03:"   'ancien : Ne01
     
                'Impression PDF : ne fonctionne que sur C:\INTRANET
                Sheets("Basic_Report").Select
     
                ReportName = Cells(3, 2)
                ReportName = Replace(ReportName, "/", "-", 1)
                ReportName = Replace(ReportName, Chr(34), " ", 1)
                ReportName = Replace(ReportName, "'", "", 1)
     
                PDFOutput = DistillerFolder & "MaFiche.pdf"
     
                ActiveWindow.SelectedSheets.PrintOut , To:=1, Copies:=1
     
                Sleep 200
     
                FileCopy PDFOutput, InvestedFolder & ReportName & ".pdf"
                Kill PDFOutput
    End Sub
    Donc, on imprime directement dans "Mes documents" puis dans un sous-répertoire de "Mes documents".

    Une 1ère remarque dans ce code : Bien que l'on ne précise pas, dans la commande "ActiveWindow.SelectedSheets.PrintOut", le code imprime bien la feuille sélectionnée et sauvegarde sous le nom "MaFiche.pdf" (note : le nom du fichier est "MaFiche.xls"). C'est étrange mais passons.

    Le 2ième fichier, avec l'autre code, est le suivant :

    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
    Sub Print_PDF()
    Dim ReportFolder As String, ReportName As String
    Dim DistillerFolder As String, PDFOutput As String
    Dim InvestedFolder As String
    Dim tmpPdf As String
     
            InvestedFolder = "C:\Users\moi.meme\Documents\TestFiche\"
            DistillerFolder = Environ$("USERPROFILE") & "\Documents\"   'avant : "\Mes documents\"
     
        Application.ActivePrinter = "Adobe PDF sur Ne03:"   'avant : Ne01:
     
        'Impression PDF : ne fonctionne que sur C:\INTRANET
        Sheets("Basic_Report").Select
     
        ReportName = Cells(3, 2)
        ReportName = Replace(ReportName, "/", "-", 1)
        ReportName = Replace(ReportName, Chr(34), " ", 1)
        ReportName = Replace(ReportName, "'", "", 1)
     
        PDFOutput = DistillerFolder & FILE_FICHE_PDF 'MaFiche.pdf
     
        ActiveWindow.SelectedSheets.PrintOut , To:=1, Copies:=1 , PrintToFile:=True, PrToFileName:=PDFOutput
     
        Sleep 500
     
        FileCopy PDFOutput, InvestedFolder & ReportName & ".pdf"
        Kill PDFOutput
    End Sub
    Ici, même principe que précédemment. Sauf que je n'ai pas le même résultat !
    En effet, quand j'ouvre le fichier PDF généré, on me dit que le fichier PDF est erroné : "Acrobat n'a pas pu ouvrir xxx.pdf, car le type de fichier n'est pas pris en charge ou le fichier est endommagé (...)"

    Si, à l'inverse, je ne précise pas le nom du fichier où imprimer en PDF :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        ActiveWindow.SelectedSheets.PrintOut , To:=1, Copies:=1
    , alors on me demande (à chaque impression), le nom du fichier PDF à exporter. C'est assez lourd si j'ai une macro qui est censé me générer 50 fichiers PDF ...
    Par contre, quand j'ouvre le fichier PDF généré, aucun problème pour le lire !

    Pourquoi, dans le 1er code, je n'ai pas eu besoin de préciser le nom du fichier PDF (= nom du fichier XLS) à chaque impression, alors que dans le deuxième code on me le demande systématiquement (soit via VBA, soit via l'ouverture d'une boite de dialogue) ? Et, quand, dans le 2ième code, je précise le nom du fichier PDF, il m'est impossible d'ouvrir ce dernier, une fois crée ?

    Merci d'avance à toute personne capable de m'aider.

    Cdlt,

  2. #2
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Bonjour,
    as-tu bien vérifié le nom inscrit en B3 => Cells(3, 2) ?
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  3. #3
    Membre du Club
    Inscrit en
    Mai 2003
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 71
    Points : 52
    Points
    52
    Par défaut
    En B3, on a le nom de la fiche, qui deviendra par la suite le nom du fichier PDF ("ReportName").
    Il n'a pas, à priori, de pbs sur ce nom : je trouve par exemple "Agressor", le nom d'un OPCVM, donc sans choses exotiques particulières (espaces, accent, etc).

    En fait, le pb apparaît dès lors que l'on exporte le fichier PDF ("ActiveWindow.SelectedSheets.PrintOut ..."), pas quand on copie le fichier PDF dans un autre répertoire ("FileCopy ...)

    ...

    J'ai comme l'impression qu'il y a un paramétrage présent dans un fichier Excel, qui est absent dans l'autre, mais même en regardant dans :
    "Fichier" -> "Imprimer" -> Sélection "Adobe PDF" puis "Propriétés de l'imprimante", j'ai les mêmes paramètres :
    Paramètres par défaut : Standard
    Protection Adobe PDF : Aucune
    Sortie Adobe PDF : Demander le nom du fichier Adobe PDF
    Format de page PDF : A4

    "afficher le fichier PDF obtenu" : non sélectionné
    "Ajouter des informations sur le document" : sélectionné
    "Se limiter aux polices système; ne pas utiliser les polices du document" : non-sélectionné
    "Supprimer les fichiers journaux des travaux effectués" : sélectionné
    "Confirmer le remplacement d'un fichier PDF existant" : non sélectionné


    Ce qui est étrange, c'est que l'on a les mêmes paramètres pour Adobe PDF dans mes 2 fichiers, mais que dans l'un, on ne précise pas le nom du fichier PDF à générer, et automatiquement il prend nom du fichier PDF = nom du fichier Excel !
    Alors que, dans l'autre cas, la même ligne de commande me fait ouvrir une boîte de dialogue me demandant que nom de fichier pour exporter !

    C'est à n'y rien comprendre ! 2 codes quasi identiques, 2 résultats différents.
    J'ai même recopié le 1er code pour remplacer le 2ième, j'ai toujours le même problème !

  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

Discussions similaires

  1. Réponses: 418
    Dernier message: 28/10/2019, 11h11
  2. JavaScript pour Adobe Acrobat 9 Pro
    Par birac dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 25/10/2014, 20h09
  3. [Adobe Acrobat Reader Pro] Cherche script pour Fomulaire en pdf
    Par nubnab dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 08/02/2012, 15h42
  4. [AC-2003] transformer un état en pdf avec acrobat 7 pro
    Par Reloadx dans le forum IHM
    Réponses: 3
    Dernier message: 12/06/2009, 13h19
  5. [AC-2007] Création de PDF avec acrobat 8 Pro
    Par TanKer dans le forum VBA Access
    Réponses: 1
    Dernier message: 30/04/2009, 14h37

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