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 :

Création PDF à partir de plusieurs feuilles


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Retraité
    Inscrit en
    juillet 2017
    Messages
    1 021
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : juillet 2017
    Messages : 1 021
    Points : 381
    Points
    381
    Par défaut Création PDF à partir de plusieurs feuilles
    Bonjour

    je créé un PDF avec la ligne suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pdf.ExportAsFixedFormat Type:=xlTypePDF, Filename:=path & nom & ".pdf", Quality:=xlQualityStandard
    Pour cela je prépare une feuille en copiant les données de toutes les feuilles à éditer

    Je voudrai éviter cette mise en page assez longue et éditer le PDF directement à partir des différentes feuilles de données (qui ont le même format), chacune ayant sa zone d'impression bien définie

    Je ne sais pas s'il est possible de concaténer des feuilles dans un ordre de création d'un PDF
    Il ne savait pas que c'était impossible, donc il l' a fait...

  2. #2
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    novembre 2003
    Messages
    17 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 17 379
    Points : 50 208
    Points
    50 208
    Billets dans le blog
    92
    Par défaut
    Salut.

    Tu peux réaliser une sélection multiple de feuilles avant d'imprimer. Tu sélectionnes la première normalement puis tu sélectionnes les autres sans remplacer la sélection:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub Test()
      Feuil1.Select
      Feuil3.Select False
      Feuil6.Select False
      ThisWorkbook.ExportAsFixedFormat xlTypePDF
    End Sub
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  3. #3
    Membre averti
    Homme Profil pro
    Retraité
    Inscrit en
    juillet 2017
    Messages
    1 021
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : juillet 2017
    Messages : 1 021
    Points : 381
    Points
    381
    Par défaut
    Merci

    comment optimiser pour avoir une liste de feuilles sélectionnées dynamique

    Pour l'instant j'ai créé autant de liste que de cas de figure

    cas 1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub Test()
      Feuil1.Select
      Feuil3.Select False
      Feuil6.Select False
      ThisWorkbook.ExportAsFixedFormat xlTypePDF
    End Sub
    cas 2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub Test()
      Feuil1.Select
      Feuil6.Select False
      ThisWorkbook.ExportAsFixedFormat xlTypePDF
    End Sub
    Suivant un choix utilisateur (via "Msgbox") certaines feuilles ne sont pas incluses dans le PDF (aucune n'est ajoutée et "Feuil1" est toujours présente)
    Il ne savait pas que c'était impossible, donc il l' a fait...

  4. #4
    Membre averti
    Homme Profil pro
    Retraité
    Inscrit en
    juillet 2017
    Messages
    1 021
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : juillet 2017
    Messages : 1 021
    Points : 381
    Points
    381
    Par défaut
    Voilà mon test
    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
    Sub t()
     
    Dim a As Worksheet, b As Worksheet, c As Worksheet
     
    Set a = Sheets("A")
    Set b = Sheets("B")
    Set c = Sheets("C")
     
    a.Select
    b.Select False
    c.Select False
     
     
    ThisWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:="t.pdf", Quality:=xlQualityStandard
     
    End Sub
    Les 3 feuilles sont dans le PDF
    Il ne savait pas que c'était impossible, donc il l' a fait...

  5. #5
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    novembre 2003
    Messages
    17 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 17 379
    Points : 50 208
    Points
    50 208
    Billets dans le blog
    92
    Par défaut
    Je n'ai pas bien compris comment tu voulais proposer la sélection aux utilisateurs. Je dirais que c'est indépendant de la façon de sélectionner plusieurs feuilles. Ca peut se faire via une listbox, soit en Excel soit en userform, par une sélection dans un tableau Excel, soit encore selon des "configurations" que l'utilisateur choisit et qui déterminent les feuilles à joindre à ton pdf.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  6. #6
    Membre averti
    Homme Profil pro
    Retraité
    Inscrit en
    juillet 2017
    Messages
    1 021
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : juillet 2017
    Messages : 1 021
    Points : 381
    Points
    381
    Par défaut
    Bonsoir,

    en fait dans ce classeur j'ai des feuilles de saisies et des feuilles qui servent à la mise en page (dans le même format)

    Au moment de lancer le PDF je voudrai optimiser en donnant directement la liste des feuilles à éditer (dans l'ordre des pages du PDF)

    Cela m'éviterai de faire la fusion de ces feuilles dans une seule ce qui prend du temps et me semble pas très optimal
    Il ne savait pas que c'était impossible, donc il l' a fait...

  7. #7
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    novembre 2003
    Messages
    17 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 17 379
    Points : 50 208
    Points
    50 208
    Billets dans le blog
    92
    Par défaut
    Oui, mais on peut présenter cela selon plusieurs ergonomies:
    • userform avec deux listbox, on choisit les feuilles dans celles de gauche et on les passe dans celle de droite par doubleclic;
    • tableau structuré avec toutes les feuilles à imprimer et à droite, une colonne dans laquelle on renseigne l'ordre;
    • ...




    C'est à toi de choisir une ergonomie en accord avec ce qui existe déjà dans ton application.Cela dit, il faut savoir que quelque soit l'ordre de sélection, les feuilles sont toujours imprimées de gauche à droite, ce qui fait que si tu veux que l'ordre ne soit pas celui des onglets, il faudra d'abord réorganiser ceux-ci.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  8. #8
    Membre averti
    Homme Profil pro
    Retraité
    Inscrit en
    juillet 2017
    Messages
    1 021
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : juillet 2017
    Messages : 1 021
    Points : 381
    Points
    381
    Par défaut
    Merci je vais étudier tour cela

    J'ai constater en testant que seules les feuilles visibles sont prise en compte dans le PDF

    Je peux cacher temporairement les feuilles à ne pas inclure et les rendre visibles ensuite

    Mais cela me semble un peu risqué...
    Il ne savait pas que c'était impossible, donc il l' a fait...

  9. #9
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    novembre 2003
    Messages
    17 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 17 379
    Points : 50 208
    Points
    50 208
    Billets dans le blog
    92
    Par défaut
    La sélection multiple fonctionne bien, à mon avis.

    C'est vrai qu'une autre technique serait de masquer temporairement les feuilles "non imprimables", mais cela ne règle pas l'ordre d'assemblage dans le pdf qui se fera de gauche à droite. Si l'ordre des feuilles dans le classeur correspond à ce que tu souhaites dans le pdf, c'est aussi une bonne solution.

    Sur le plan du risque, je dirais qu'il est moins risquer de masquer les feuilles que d'en sélectionner plusieurs, car en sélection groupée, (presque) tout ce que tu ferais sur la feuille active serait reporté sur les autres feuilles du groupe, ce qui pourrait avoir des conséquences fâcheuses, tandis que rendre les feuilles masquées visibles ne présente ni un risque ni une difficulté.

    Cette solution de masquer les feuilles pourrait donc s'avérer plus sécurisante que la sélection multiple que j'ai proposée, sauf problème mis en lumière après une réflexion plus approfondie
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  10. #10
    Membre averti
    Homme Profil pro
    Retraité
    Inscrit en
    juillet 2017
    Messages
    1 021
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : juillet 2017
    Messages : 1 021
    Points : 381
    Points
    381
    Par défaut
    J'ai déjà prévu que mes feuilles soient dans l'ordre de l'édition de gauche à droite donc je vais tester tout ça
    Il ne savait pas que c'était impossible, donc il l' a fait...

Discussions similaires

  1. [XL-2010] Générer Un PDF à partir de plusieurs feuilles
    Par ToFind dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 22/11/2010, 23h25
  2. Réponses: 1
    Dernier message: 28/09/2010, 20h40
  3. Réponses: 4
    Dernier message: 20/07/2008, 12h01
  4. Réponses: 3
    Dernier message: 07/05/2008, 09h30
  5. Creation d'un pdf à partir de plusieurs ndr
    Par woully dans le forum Rave
    Réponses: 1
    Dernier message: 07/03/2007, 19h26

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