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 :

Exportation Excel vers PDF en VBA [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre extrêmement actif

    Développeur NTIC
    Inscrit en
    Janvier 2011
    Messages
    1 670
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations professionnelles :
    Activité : Développeur NTIC
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 670
    Par défaut Exportation Excel vers PDF en VBA
    Bonjour, je dois me mettre à VBA pour ma boîte, seulement, je n'en ai jamais fait ...

    J'ai un document contenant plusieurs feuilles qui contiennent elles mêmes plusieurs pages.
    On me demande la possibilité d'imprimer plusieurs pages de plusieurs feuilles les unes à la suite des autres.
    Par exemple : Feuille 1 page 8, puis feuille 3 page 27, puis feuille 512 page 1, etc

    J'e me suis servi de l'excellent Tutoriel trouvé sur votre site ici : http://heureuxoli.developpez.com/office/word/doc2pdf/

    J'ai donc importé le formulaire fourni par PDFCreator, puis j'ai coché la référence PDF Creator, ensuite j'ai créé mon bouton et inséré le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Load frmPDFCreator
    frmPDFCreator.Show
    Donc voilà, le formulaire se charge mais j'aimerais offrir la possibilité d'imprimer telle ou telle page en particulier d'une feuille en particulier (en fait c'est un seul document éclaté en plusieurs feuilles excel ...) et je n'ai strictement aucune idée d'où partir mis à part que je vais travailler sur la partie suivante
    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
    If OptionButton2.Value = True Then
      With PDFCreator1
       .cOption("UseAutosave") = 1
       .cOption("UseAutosaveDirectory") = 1
       .cOption("AutosaveDirectory") = ActiveWorkbook.Path
       Debug.Print outName & "-" & ActiveSheet.Name
       .cOption("AutosaveFilename") = outName & "-" & ActiveSheet.Name
       .cOption("AutosaveFormat") = 0                            ' 0 = PDF
       .cClearCache
      End With
      ActiveSheet.PrintOut Copies:=1, ActivePrinter:="PDFCreator"
      Do Until PDFCreator1.cCountOfPrintjobs = 1
       DoEvents
       Sleep 1000
      Loop
      Sleep 1000
      PDFCreator1.cPrinterStop = False
     End If
    .

    Merci à ceux qui sauront m'aiguiller.

  2. #2
    Expert confirmé
    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
    Par défaut
    Salut, à partir de la version 2007 Office intègre en natif le format PDF, donc l'usage de PdfCreator ou autre devient souvent inutile, cependant tu peux jeter un œil sur http://www.developpez.net/forums/d43...bat-distiller/ à tout hasard ( en bas du Post #1 )

    Un exemple très sommaire, à toi de l'adapter
    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
    Option Explicit
     
    Sub Tst()
    Dim Ar(2) As String
     
        Ar(0) = Feuil1.Name
        Ar(1) = Feuil2.Name
        Ar(2) = Feuil3.Name
        Application.ScreenUpdating = False
        Sheets(Ar).Select
     
        ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=ThisWorkbook.Path & "\" & "Essai.pdf" _
            , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
            :=False, OpenAfterPublish:=False
     
        Sheets("Feuil1").Select
        Application.ScreenUpdating = True
    End Sub

  3. #3
    Membre extrêmement actif

    Développeur NTIC
    Inscrit en
    Janvier 2011
    Messages
    1 670
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations professionnelles :
    Activité : Développeur NTIC
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 670
    Par défaut
    Merci Philippe, mais je n'y comprends vraiment rien du tout ...

    Ce que je voudrais en fait c'est que quand j'appuie sur un bouton (en l'occurrence le bouton du mois de mars par exemple (je vais faire un bouton par mois)). Il imprime certaines pages de certaines feuilles, pas les feuilles complètes.

    Par exemple :


    On commence à la feuille 1 page 1 2 3

    On passe à la feuille 2 pages 3 5 7

    On passe à la feuille 5 pages 7 9 3

    On passe à la feuille 1 page 8 5 3

    Je ne vois absolument pas comment faire.

  4. #4
    Expert confirmé
    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
    Par défaut
    Salut, l'exemple sous entend que la mise en page et donc la zone à imprimer pour chaque feuille a été sélectionnée avant de lancer l'impression Pdf

  5. #5
    Membre extrêmement actif

    Développeur NTIC
    Inscrit en
    Janvier 2011
    Messages
    1 670
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations professionnelles :
    Activité : Développeur NTIC
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 670
    Par défaut
    Le fonctionnement voulu nécessite une impression automatique et non une impression par sélection (si c'est ce que tu veux dire par "l'exemple sous entend que la mise en page et donc la zone à imprimer pour chaque feuille a été sélectionnée avant de lancer l'impression Pdf").

  6. #6
    Expert confirmé
    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
    Par défaut
    Salut, as-tu seulement essayé le code fourni ?
    De tout façon il faut que la mise en page ait été faite pour toutes les feuilles avant de lancer une impression, ensuite il y a des choses du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.PageSetup.PrintArea = "$A$1:$G$33"

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

Discussions similaires

  1. [XL-2010] Mise en page excel vers PDF en VBA
    Par shakapouet dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 16/06/2017, 11h42
  2. Exportation Excel vers PPT avec VBA
    Par ikramea dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 27/12/2011, 18h36
  3. [WD16] Export Excel vers PDF
    Par fcsamplus dans le forum WinDev
    Réponses: 2
    Dernier message: 28/07/2011, 13h51
  4. [VBA]excel vers pdf
    Par Oussbaba au rhum dans le forum Macros et VBA Excel
    Réponses: 28
    Dernier message: 16/10/2007, 13h05
  5. [VBA-Word] Exportation Excel vers Word
    Par le_sonic dans le forum VBA Word
    Réponses: 6
    Dernier message: 20/12/2006, 17h18

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