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 :

Mise en page excel vers PDF en VBA


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Octobre 2011
    Messages : 163
    Points : 89
    Points
    89
    Par défaut Mise en page excel vers PDF en VBA
    Bonjour,

    Je vous expose mon problème.
    J'ai un fichier excel qui me génère des feuilles automatique ou on y place des tableau et des graphiques. A la fin de la génération de ces documents je souhaite récupérer dans un fichier PDF toutes mes feuilles créé. Pour convertir mes feuilles excel en PDF j'utilise cette fonction qui marche très bien :

    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
    Sub ToPdf()
     
        Set pdfjob = CreateObject("PDFCreator.clsPDFCreator")
        NomExcel = ThisWorkbook.Name
        NomPdf = Left(NomExcel, Len(NomExcel) - 4) & ".pdf"
     
        With pdfjob
            If .cstart("/NoProcessingAtStartup") = False Then
                MsgBox "Can't initialize PDFCreator.", vbCritical + vbOKOnly, "PrtPDFCreator"
                Exit Sub
            End If
            .cOption("UseAutosave") = 1
            .cOption("UseAutisaveDirectory") = 1
            .cOption("AutosaveDirectory") = ThisWorkbook.Path
            .cOption("AutosaveFilename") = NomPdf
            .cOption("AutosaveFormat") = 0
            .cClearCache
        End With
     
        ThisWorkbook.PrintOut copies:=1, ActivePrinter:="PDFCreator"
     
        Do Until pdfjob.cCountOfPrintjobs = 1
            DoEvents
        Loop
     
        pdfjob.cPrinterStop = False
     
        Do Until pdfjob.cCountOfPrintjobs = 0
            DoEvents
        Loop
     
        With pdfjob
            .cDefaultprinter = DefaultPrinter
            .cClearCache
            .cClose
        End With
     
        Set pdfjob = Nothing
     
    End Sub
    Le problème que j'ai c'est que mes feuilles Excel sont trop large pour tenir sur une page PDF. Voir photo01

    http://imageshack.us/photo/my-images...nstitreayk.jpg

    Pour palier à ce problème j'utilise une macro qui adapte mon tabeau sur une page à l'aide de ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ActiveWindow.View = xlPageBreakPreview
            ActiveSheet.VPageBreaks(1).DragOff Direction:=xlToRight, RegionIndex:=1
            ActiveWindow.View = xlNormalView
    Cela fonctionne bien et me donne ce résultat sur le PDF si je n'affiche pas mes graphique dans la mise en page.

    http://imageshack.us/photo/my-images...nstitre3wl.jpg

    Et quand j'insère mes graphiques cela me donne ça :

    http://imageshack.us/photo/my-images...nstitre2sh.jpg

    Voila quelqu’un pourrait il m'aider à palier ce problème, car je veut absolument afficher une feuille excel par page. Je suis ouvert à toute proposition.

    Cordialement

  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 272
    Points
    11 272
    Par défaut
    Salut, déjà à partir d'Office 2007 le format Pdf est intégré en natif dans Office

    ensuite insère tes graphiques chacun dans une nouvelle feuille, par défaut le nom de ces feuilles sera du style GraphXX
    voir sur http://www.developpez.net/forums/d43...bat-distiller/ en bas du Post #1 Impression de certaines Feuilles d'un classeur via un tableau dans un seul Pdf résultant

    Tu devrais aboutir au code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        Application.ScreenUpdating = False
        Sheets(Array("Feuil1", "Graph1")).Select
        ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
                                        Filename:="C:\Transfert\Classeur1.pdf", _
                                        Quality:=xlQualityStandard, _
                                        IncludeDocProperties:=True, _
                                        IgnorePrintAreas:=False, _
                                        OpenAfterPublish:=False
        Sheets("Feuil1").Activate
        Application.ScreenUpdating = True

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Octobre 2011
    Messages : 163
    Points : 89
    Points
    89
    Par défaut
    Merci pour ta réponse.

    La ça me permet de mettre mes graphiques a chaque fois sur une nouvelle feuille et ensuite pouvoir sélectionner les feuilles à mettre dans le pDf.

    Peut être que j'ai mal compris, mais il faut que chaque fiche de transporteur que j'ai soit joint avec les tableau dans la même page PDF. Si ils ce trouve dans les pages suivant l'affichage des tableau, ça ne sera pas bon.

    Voila si tu peux m'éclairer un peut plus.

    Merci

  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 272
    Points
    11 272
    Par défaut
    re, apparemment tu ne veux pas faire le choix de la lisibilité

  5. #5
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Octobre 2011
    Messages : 163
    Points : 89
    Points
    89
    Par défaut
    Tu veux dire que si je met tous sur la même feuille, les données seront illisible.

    Je ne comprend pas car, quand je n'affiche pas les graphiques, le tableau est bien lisible comme je l'ai mit dans mon screenshot et il reste le bas de la page qui est vide. Donc il devrait y avoir la place pour mettre les graphiques.

    Pourrais tu m'éclaire un peut plus sur la vision que tu me proposais ?

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2017
    Messages : 2
    Points : 0
    Points
    0
    Par défaut barox07
    Nom : Excel.png
Affichages : 2624
Taille : 24,4 KoSalut tous le monde ,
    je viens de lire votre discussion qui contient une solution à mon problème, a un premier temps j'ai réussi à le résoudre mais après je ne sais ce qui a changé dans mon code pour que sa ne fonctionne plus , le problème c'est quand j'enregistre sous mon classeur excel qui contient des graphiques en pdf avec vba mais quand j'ouvre le pdf je ne trouve pas les graphique :/
    voila le code :

    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
    Sub enregistrement_pdf(Fichier_source As String, Fichier_destination As String)
    Dim wbRapp As Excel.Workbook
    ' ouverture du fichier
       Set wbRapp = Workbooks.Open(Fichier_source)
      ' wbRapp.Sheets (Array("Rapport", "Annexe1", "Annexe3", "Annexe4"))
       wbRapp.Sheets.Select
     
    ' sauvegarde du fichier au format pdf
        wbRapp.ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, filename:=Fichier_destination, Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
     
    ' fermeture du fichier
        wbRapp.Close
        Set wbRapp = Nothing
    End Sub
    voila des IMP Ecran :

    Nom : Excel.png
Affichages : 2624
Taille : 24,4 Ko
    Nom : PDF.png
Affichages : 2326
Taille : 31,3 Ko

  7. #7
    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 272
    Points
    11 272
    Par défaut
    Salut,
    je viens de lire votre discussion qui contient une solution à mon problème, a un premier temps j'ai réussi à le résoudre mais après je ne sais ce qui a changé dans mon code
    ..... et tu veux que l'on joue les devins, comme déjà dit plusieurs fois, je ne pratique pas l'extispicine.

  8. #8
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2017
    Messages : 2
    Points : 0
    Points
    0
    Par défaut barox07
    Bonjour,

    Comment ca? je ne vous est pas demandé de résoudre mon problème mas tous simplement de me fournir un exemple d'un fichier Excel contenant des graphiques, avec une macro qui l'enregistre sous forme de PDF et que ces graphiques soient présent aussi dans ce dernier .

    Merci !

Discussions similaires

  1. [XL-2010] Exportation Excel vers PDF en VBA
    Par Mr_Exal dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 14/02/2012, 14h56
  2. [AC-2002] Exportation Mise en page TCD vers EXCEL
    Par Tiolebucheron dans le forum VBA Access
    Réponses: 4
    Dernier message: 15/06/2011, 15h04
  3. [VBA]excel vers pdf
    Par Oussbaba au rhum dans le forum Macros et VBA Excel
    Réponses: 28
    Dernier message: 16/10/2007, 14h05
  4. Mise en page Excel via VBA Access
    Par popo68 dans le forum VBA Access
    Réponses: 3
    Dernier message: 06/11/2006, 18h03
  5. [VBA-E] Exporter une page Excel vers un Fichier Txt
    Par mamantins dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 08/06/2006, 12h09

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