Export PDF via macro VBA avec nom de feuilles variants

Résolu/Fermé
Matheew Messages postés 9 Date d'inscription mardi 11 novembre 2014 Statut Membre Dernière intervention 13 juin 2016 - 10 juin 2016 à 12:03
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 - 28 juil. 2016 à 18:54
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

A voir également:

1 réponse

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
10 juin 2016 à 12:20
Bonjour,

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

http://www.cjoint.com/c/FFkksIlbjpQ
0
Matheew Messages postés 9 Date d'inscription mardi 11 novembre 2014 Statut Membre Dernière intervention 13 juin 2016
10 juin 2016 à 13:47
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
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728 > Matheew Messages postés 9 Date d'inscription mardi 11 novembre 2014 Statut Membre Dernière intervention 13 juin 2016
10 juin 2016 à 18:11
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
cridule > cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024
28 juil. 2016 à 14:13
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
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728 > cridule
28 juil. 2016 à 18:54
Voilà un exemple:

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

@+ Le Pivert
0
Matheew Messages postés 9 Date d'inscription mardi 11 novembre 2014 Statut Membre Dernière intervention 13 juin 2016
13 juin 2016 à 12:50
Parfait, après adaptation du code à mon cas, ça fonctionne !

Un énorme merci Le Pivert.
0