Export PDF via macro VBA avec nom de feuilles variants

Résolu
Matheew Messages postés 9 Statut Membre -  
cs_Le Pivert Messages postés 8437 Statut Contributeur -
Bonjour à tous,

Je souhaite réaliser un extract PDF de plusieurs feuilles de mon fichier Excel.

J'ai déjà codé une macro pour ça, qui fonctionne lorsque je lui donne l'ensemble des noms de mes feuilles et utilise la commande Sheets(Arrays("nom des feuilles").

Ci-dessous ma macro.

Sub Extract_PDF()
'

Dim chemin As String
chemin = Workbooks(ActiveWorkbook.Name).Path

NumSemaine = Worksheets("Objectifs").Range("B3").Value

Sheets(Array("Visuel Structure 1", "Visuel Structure 2", "Visuel Structure 3", "Visuel CN", "Visuel Equipement 1", "Visuel Equipement 2", "Visuel Equipement 3", "Visuel P66")).Select
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=chemin & "\KPI TP A320NEO Semaine " & NumSemaine & ".pdf", IncludeDocProperties:=True, IgnorePrintAreas:=False

'
End Sub

Or mon problème est que je ne souhaite pas exporter l'ensemble des feuilles présentes ci-dessous, mais celles pour lesquelles j'ai défini un objectif pour la semaine.
Je suis capable de récupérer l'ensemble des noms des pages que je souhaite exporter via des variable String, mais je n'arrive pas à permettre d'exporter un nombre variable de page et sans donner directement l'instruction avec le nom de la feuille.

Par exemple, si je récupère le nom de mes feuilles dans les variables nom_feuille1 et nom_feuille2, la commande Sheets(Array(nom_feuille1, nom_feuille2)) ne fonctionne pas.
Je me suis demandé s'il fallait que le tableau contienne les feuilles et pas seulement les noms, mais aucune différence, ça bloque aussi.

Est-ce que vous auriez une idée de comment faire s'il vous plait ?

Merci beaucoup de votre aide !

Mathieu

1 réponse

  1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Bonjour,

    voici un exemple qui enregistre en PDF dans le dossier du classeur:

    http://www.cjoint.com/c/FFkksIlbjpQ
    0
    1. Matheew Messages postés 9 Statut Membre
       
      Merci pour ta réponse rapide !

      J'ai oublié de préciser une chose assez importante : j'aimerais que l'ensemble de mes feuilles soient réunies dans le même fichier PDF et pas un fichier par feuille.

      Est ce que vous auriez une solution pour ça ?

      Merci.

      Mathieu
      0
      1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730 > Matheew Messages postés 9 Statut Membre
         
        Voici la macro correspondante a changer:

        Private Sub save_Click()
        Dim i As Integer
        Dim sRep As String
        Dim sFilename As String
        Dim prov() As Variant
        Dim nbFeuil
        nbFeuil = 0
        
        'on parcourt toutes les feuilles
        For i = 0 To SelectFeuille.ListCount - 1
            If SelectFeuille.Selected(i) Then
               ChoixFeuille = SelectFeuille.List(i)
                ReDim Preserve prov(nbFeuil)
                  prov(nbFeuil) = Sheets(i + 1).Name
                  nbFeuil = nbFeuil + 1
               End If
                  Next i
               Sheets(prov).Select ' selection de toutes les feuilles en surbrillance
            'chemin d'enregistrement
           sRep = ThisWorkbook.Path & "\"
            sFilename = ThisWorkbook.Name
            sFilename = Left(sFilename, InStr(1, sFilename, ".")) & "pdf"
         'enregistrement
            ActiveSheet.ExportAsFixedFormat _
                    Type:=xlTypePDF, _
                    Filename:=sRep & sFilename, _
                    Quality:=xlQualityStandard, _
                    IncludeDocProperties:=True, _
                    IgnorePrintAreas:=False, _
                    OpenAfterPublish:=True
           End Sub


        l'enregistrement se fait sous le nom du classeur, a adapter

        @+ Le Pivert
        0
      2. cridule > cs_Le Pivert Messages postés 8437 Statut Contributeur
         
        Bonjour,

        Merci pour ce retour
        Je reviens un peu tardivement

        Je n'arrive pas a la faire fonctionner
        En fait je ne sais pas comment l'intégrer dans Excel :-/

        Vous pouvez m'aider ?
        0
      3. cs_Le Pivert Messages postés 8437 Statut Contributeur 730 > cridule
         
        Voilà un exemple:

        http://www.cjoint.com/c/FGCq1fiOtlQ

        @+ Le Pivert
        0
    2. Matheew Messages postés 9 Statut Membre
       
      Parfait, après adaptation du code à mon cas, ça fonctionne !

      Un énorme merci Le Pivert.
      0