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 :

Enregistrer menu déroulant en PDF 1 fichier


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Septembre 2018
    Messages : 2
    Par défaut Enregistrer menu déroulant en PDF 1 fichier
    Bonjour à tous,

    Tout d'abord merci pour ce super forum qui m'a dépanné plus d'une fois.
    Je suis novice en VBA mais j'arrive toujours à m'en sortir à peu près mais la je bloque depuis des heures.
    Je vous explique mon "problème" :
    J'ai un menu déroulant dans ma feuille 1 qui va chercher des infos dans un tableau (qui me sert de base de données) dans ma feuille 2. J'ai ensuite un bouton qui me permet d'exporter chaque choix de mon menu déroulant dans un fichier PDF mais malheureusement après génération mon fichier PDF ne contient qu'une seule personne de mon menu déroulant, je pense que mon code n'est pas adapté et qu'il écrase chaque personne lors de chaque "passage".
    Voici mon 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
    Sub Export_PDF()
        Dim xRg As Range
        Dim xCell As Range
        Dim xRgVList As Range
        Set xRg = Worksheets("Sheet1").Range("C9")
        Set xRgVList = Evaluate(xRg.Validation.Formula1)
        sNomFichierPDF = ThisWorkbook.Path & "\" & Worksheets("Sheet1").Range("C9") & ".pdf"
        For Each xCell In xRgVList
            xRg = xCell.Value
            ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sNomFichierPDF _
            , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
            :=False, OpenAfterPublish:=False
        Next
    End Sub
    J'ai essayé d'adapter le code de #kiki29 présent ici : https://www.developpez.net/forums/d4...ro-pdfcreator/ mais je n'y arrive pas

    Merci d'avance pour votre aide.

    Cdt

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Etant donné que tu fixes le nom du PDF avant le For Each, il est évident que chaque tour de la boucle va générer un nouveau fichier qui écrasera le précédent.

    A ma connaissance, l'Export PDF d'Excel ne peut pas concaténer des PDF comme peut le faire PDF Creator.
    En tout cas, je ne vois aucun paramètre de ExportAsFixedFormat qui semble indiquer que ce soit possible.
    https://docs.microsoft.com/fr-fr/off...tasfixedformat

    Si tu veux faire ce que tu décris, il faudra donc sans doute passer par un outil supplémentaire comme PDF Creator qui, lui aussi, peut se piloter avec VBA.

  3. #3
    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, il te faudra générer tes fichiers pdf avec une dénomination différente pour chaque fichier, via par exemple un incrément dans ta boucle for...each, puis ensuite en faire la fusion.
    Pour cela voir via cette liste Liste des contributions et téléchargements

    Qqch dans le genre ( pas 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
    17
    18
    19
    20
    21
    22
    23
    Option Explicit
     
    Sub Export_PDF()
    Dim sNomFichierPDF As String
    Dim xRg As Range
    Dim xCell As Range
    Dim xRgVList As Range
    Dim i As Long
     
        Set xRg = Worksheets("Sheet1").Range("C9")
        Set xRgVList = Evaluate(xRg.Validation.Formula1)
        For Each xCell In xRgVList
            xRg = xCell.Value
            i = i + 1
            sNomFichierPDF = ThisWorkbook.Path & "\" & Worksheets("Sheet1").Range("C9") & "_" & i & ".pdf"
            ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
                                            Filename:=sNomFichierPDF, _
                                            Quality:=xlQualityStandard, _
                                            IncludeDocProperties:=True, _
                                            IgnorePrintAreas:=False, _
                                            OpenAfterPublish:=False
        Next xCell
    End Sub

  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

  5. #5
    Nouveau candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Septembre 2018
    Messages : 2
    Par défaut
    Citation Envoyé par kiki29 Voir le message
    Salut, il te faudra générer tes fichiers pdf avec une dénomination différente pour chaque fichier, via par exemple un incrément dans ta boucle for...each, puis ensuite en faire la fusion.
    Pour cela voir via cette liste Liste des contributions et téléchargements

    Qqch dans le genre ( pas 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
    17
    18
    19
    20
    21
    22
    23
    Option Explicit
     
    Sub Export_PDF()
    Dim sNomFichierPDF As String
    Dim xRg As Range
    Dim xCell As Range
    Dim xRgVList As Range
    Dim i As Long
     
        Set xRg = Worksheets("Sheet1").Range("C9")
        Set xRgVList = Evaluate(xRg.Validation.Formula1)
        For Each xCell In xRgVList
            xRg = xCell.Value
            i = i + 1
            sNomFichierPDF = ThisWorkbook.Path & "\" & Worksheets("Sheet1").Range("C9") & "_" & i & ".pdf"
            ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
                                            Filename:=sNomFichierPDF, _
                                            Quality:=xlQualityStandard, _
                                            IncludeDocProperties:=True, _
                                            IgnorePrintAreas:=False, _
                                            OpenAfterPublish:=False
        Next xCell
    End Sub
    Bonjour,

    C'est parfait c'est ce que je cherchais à faire depuis hier, je pensais qu'avec un script VBA et en m'appuyant sur ton code "Impression de certaines Feuilles d'un classeur via un tableau dans un seul Pdf résultant" j'y arriverais mais au final cela me convient parfaitement comme ça.
    Merci encore pour votre aide.

    Cdt

  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
    Re, ce VBA Impression de certaines Feuilles d'un classeur via un tableau dans un seul Pdf résultant permet de le faire mais pour des feuilles existantes déjà présentes dans le classeur

Discussions similaires

  1. Réponses: 5
    Dernier message: 15/02/2012, 16h28
  2. [XL-2007] Ouverture d'un auter fichier excel après choix sur menu déroulant
    Par scarabee10 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 20/07/2010, 13h17
  3. Réponses: 2
    Dernier message: 10/06/2009, 15h27
  4. Lister fichiers et sous répertoire dans un menu déroulant
    Par WeDgEMasTeR dans le forum Langage
    Réponses: 8
    Dernier message: 23/05/2008, 16h48
  5. [php5] menu déroulant : 2 dans un fichier
    Par fanette dans le forum Langage
    Réponses: 5
    Dernier message: 29/05/2007, 15h42

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