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 en PDF d'une zone nommée


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2004
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 118
    Points : 73
    Points
    73
    Par défaut Impression en PDF d'une zone nommée
    Bonjour

    Je cherche depuis quelques heures à résoudre un souci d'impression PDF
    Je crée une page de rapport graphique (zone d'impression) et je souhaite l'imprimer (ou l'exporter mais je n'ai pas trouver de solutions) en PDF.
    J'utilise simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        ActiveSheet.Range("Rapport").PrintOut
    Mais j'obtiens un fichier PDF illisible
    L'impression manuelle marche très bien
    Je soupçonne la déclaration de l'imprimante mais je n'en ai pas la preuve
    Voici le code complet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        Chemin = "D:\Mes documents\Téléchargements"
        Nom = "Rapport de synthèse"
        CheminComplet = Chemin & "\" & Nom & ".pdf"
        ActiveSheet.Range("Rapport").PrintOut Copies:=1, Preview:=False, ActivePrinter:="Adobe PDF sur Ne08:", PrintToFile:=True, Collate:=True, PrToFilename:=CheminComplet
    Si vous aviez une idée pour me guider
    Merci de vos retours

  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, de cette façon tu génères un fichier ps ( PostScript ) et non un pdf. Pour cela il te faudrait une 2nde passe PS to PDF, du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        Set PDFDist = New PdfDistiller
        PDFDist.FileToPDF sNomFichierPS, sNomFichierPDF, ""
        Set PDFDist = Nothing
    Voir avec Manipulations des PDF via Excel / Acrobat / PDFCreator / xPDF, dont le tout 1er post ( datant de 2007 ! ) t'apporte la réponse.

    Depuis office 2007 d'autres réponses nettement plus succinctes sont possibles.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Août 2004
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 118
    Points : 73
    Points
    73
    Par défaut
    Merci de ta réponse
    J'aurai 3 interrogations pour mieux comprendre :
    - Pourquoi l'instruction ActiveSheet.Range("A1:J100").PrintOut ne sort qu'un PS alors qu'en manuel l'imprimante ADOBE PDF sort directement un PDF, ce qui oblige à faire une passe supplémentaire. Pour moi, c'est incompréhensible.
    - La seconde m’interroge sur le type de variable de PDFDist (je déclare toutes mes variables)
    - Y a t il une référence à cocher en plus d'Acrobat DISTILLER
    Merci de tes réponses

  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, cette 2nde passe existe toujours mais n'est pas "visible". As-tu lu le tout 1er post ( de 2007 ! ) ? La réponse y est.
    De plus :
    Depuis Office 2007 d'autres réponses nettement plus succinctes sont possibles.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Août 2004
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 118
    Points : 73
    Points
    73
    Par défaut
    Bonjour
    Je m'arrache le peu de cheveux qui me restent
    J'avais bien lu le premier post et n'avais vu la déclaration de variable
    D'autre part, je n'ai toujours pas l'explication car une fois de plus, en vba, l'impression avec l'imprimante ADOBE PDF de Windows ne marche pas comme en manuel.
    De plus, en appliquant ta solution, j'ai un souci d'un message
    Nom : Capture.PNG
Affichages : 557
Taille : 24,9 Ko
    Hors, j'ai décoché depuis longtemps cette option avec un téléchargement des polices du fichier en automatique dans la configuration d'ADOBE PDF (dès que cela touche au système Windows, je suis perdu)

    Ensuite, si je suis ta méthode, tu transforme un fichier crée en PS en PDF.
    Le souci c'est que je souhaite imprimer une plage dans un rapport hebdomadaire en automatique et je t'avoue ne pas savoir passer du fichier à la plage et de ne pas trouver la solution

  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
    Salut, comme ici tout fonctionne via le code du Post 1 ( depuis Acrobat 6 à Acrobat 15 ), donc qq part ton paramétrage est mauvais.
    Bis repetita placent :
    Depuis office 2007 d'autres réponses nettement plus succinctes sont possibles.
    Images attachées Images attachées  

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Août 2004
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 118
    Points : 73
    Points
    73
    Par défaut
    J'ai précisé dans le post précédent que j'avais décoché cette option depuis le départ dans la configuration de base de l'imprimante dans Windows mais que cela ne fonctionne pas (en plus, j'ai fixé les polices nécessaires aussi) (Bis répétita)
    D'autre part, la méthode que tu proposes ne fonctionne pas et je ne comprends pas pourquoi. J'aimerai au lieu d'une solution, avoir une explication pourquoi en manuel cela fonctionne alors que en Vba cela ne marche pas pour trouver moi même la solution
    D'autre part, le post que tu parles je l'ai épluché et je ne sais pas passer d'un fichier (ta solution) à une plage nommée, mon besoin.
    J'utilise Excel 2013
    Merci si tu as une solution ou alors apportes moi un éclairage

  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
    Re, et tu dis l'avoir lu ?
    Images attachées Images attachées  

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Août 2004
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 118
    Points : 73
    Points
    73
    Par défaut
    OUi parce que c'est exactement le code que j'utilise et qui ne marche pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
        poste = Range("NOM").Value
        chemin = "D:\Mes documents\Téléchargements"
        nom = "Rapport de synthèse - Recrutement - " '& Poste & "au " & Day(Date) & "-" & Month(Date) & "-" & Year(Date)
        cheminComplet = chemin & "\" & nom & ".ps"
        Application.ActivePrinter = "Adobe PDF sur Ne08:"
        ActiveSheet.Range("A1:J100").PrintOut Copies:=1, Preview:=False, ActivePrinter:="Adobe PDF sur Ne08:", PrintToFile:=True, Collate:=True, PrToFilename:=cheminComplet
        Set PDFDist = New PdfDistiller
        PDFDist.FileToPDF cheminComplet, nomFichier, ""
        Set PDFDist = Nothing
    J'ai oublié
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    nomfichier = chemin & "\" & nom & ".pdf"
    En fait il me crée un fichier ps vide
    Voici le log
    %%[ Warning: Empty job. No PDF file produced. ] %%
    Je ne sais pas pourquoi le paramétrage de l'imprimante ADOBE PDF ne tient pas alors qu'il est maintenant natif et que j'ai toujours ce message.
    Est ce que le fichier vide vient de se message ?

  10. #10
    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, ici tout baigne
    %%[ ProductName: Distiller ]%%
    %%[Page: 1]%%
    %%[Page: 2]%%
    %%[Page: 3]%%
    %%[Page: 4]%%
    %%[LastPage]%%
    Images attachées Images attachées  

  11. #11
    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, si tu as Office 2007 ou +, tu as ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Option Explicit
     
    Sub Tst_04()
    Dim sNom As String
        sNom = ThisWorkbook.Path & "\" & "Test_04.pdf"
        Feuil1.Range("Rapport").ExportAsFixedFormat Type:=xlTypePDF, _
                                                    Filename:=sNom, _
                                                    Quality:=xlQualityStandard, _
                                                    IncludeDocProperties:=True, _
                                                    IgnorePrintAreas:=False, _
                                                    OpenAfterPublish:=False
    End Sub

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Août 2004
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 118
    Points : 73
    Points
    73
    Par défaut
    L'export marche directement et est plus simple.
    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD-2007] Publipostage : Impression en PDF avec une page par fichier
    Par nesumi dans le forum Word
    Réponses: 30
    Dernier message: 23/11/2020, 18h36
  2. [XL-2003] Parcours d'une zone nommée
    Par cynoq dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 16/11/2010, 10h31
  3. [XL-2000] Test de l'existence d'une zone nommée
    Par crashtib dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 08/06/2010, 19h24
  4. afficher pdf dans une zone limité
    Par nadiaflamingenierie dans le forum C#
    Réponses: 4
    Dernier message: 18/05/2010, 16h11
  5. Réponses: 2
    Dernier message: 30/03/2008, 20h33

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