Enregister selection de feuille pdf

Bonsoir,

J'ai beau chercher et modifier ma formule, je n'arrive pas à mes fins...

Je souhaite créer une macro pour enregistrer une sélection de feuilles au format pdf en ayant la boite de dialogue qui s'affiche afin de pouvoir choisir moi même le chemin...

J'arrive à enregistrer tout le classeur en ouvrant la boite de dialogue, mais je bloque quant à ma sélection de feuilles a sauvegarder..

Je suis novice en VBA, et les petites choses "simples" ne sont pas encore très évidentes pour moi..

Voici mon code :

""

Sub Macro5()

Dim fichier As String

Sheets(Array("PageGarde", "RepriseTracteur", "FinVente", "RemisePrix", "Garantie", "PageContact")).Select

Application.GetSaveAsFilename(FileFilter:="PDF Files (*.pdf), (*.pdf)", Title:="Some Random Title", InitialFileName:="NomFichier")

End Sub

""

Un tout grand merci pour votre aide !

Babou

à tester

Dim fname As Variant

Sheets(Array("PageGarde", "RepriseTracteur")).Select
    fname = Application.GetSaveAsFilename( _
        InitialFileName:="Fichier.pdf", _
        FileFilter:="PDF files, *.pdf", _
        Title:="Sauvegarder en PDF")
    If fname <> False Then
        ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=fname _
            , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
            :=False, OpenAfterPublish:=True
            End If

EDIT: modifications pour n'Avoir qu'une seule boite de dialogue à gérer

Bonjour,

Un autre exemple.

Le pdf est enregistré dans le répertoire courant.

ALT F8, puis exécuter la procédure.

Cdlt.

12babou4130.xlsm (29.95 Ko)
Public Sub SaveSheetsAsPDF()
Dim wb As Workbook, ws As Worksheet
Dim AllSheets As Variant
Dim strPath As String, strFilename As String
    Set wb = ActiveWorkbook
    Set ws = wb.Worksheets("PageGarde")
    strPath = wb.Path & Application.PathSeparator
    strFilename = Split(wb.Name, ".")(0) & Format(VBA.Date, " yyyy-mm-dd") & ".pdf"
    AllSheets = Array("PageGarde", "RepriseTracteur", "FinVente", "RemisePrix", "Garantie", "PageContact")
    wb.Sheets(AllSheets).Select
    ws.ExportAsFixedFormat _
            Type:=xlTypePDF, _
            Filename:=strPath & strFilename, _
            Quality:=xlQualityStandard, _
            IncludeDocProperties:=True, _
            IgnorePrintAreas:=False ', _
            OpenAfterPublish:=True
    ws.Select
End Sub

Bonsoir crackwood01,

Lorsque j'essaye la macro la boite de diag s'ouvre bien, mais je n'ai pas la possibilité d'enregistrer le fichier, je peux "juste " chercher un dossier... Voir photo...

Merci

excel pratique test

Bonjour,

Un autre exemple.

Le pdf est enregistré dans le répertoire courant.

ALT F8, puis exécuter la procédure.

Cdlt.

babou4130.xlsm

Public Sub SaveSheetsAsPDF()
Dim wb As Workbook, ws As Worksheet
Dim AllSheets As Variant
Dim strPath As String, strFilename As String
    Set wb = ActiveWorkbook
    Set ws = wb.Worksheets("PageGarde")
    strPath = wb.Path & Application.PathSeparator
    strFilename = Split(wb.Name, ".")(0) & Format(VBA.Date, " yyyy-mm-dd") & ".pdf"
    AllSheets = Array("PageGarde", "RepriseTracteur", "FinVente", "RemisePrix", "Garantie", "PageContact")
    wb.Sheets(AllSheets).Select
    ws.ExportAsFixedFormat _
            Type:=xlTypePDF, _
            Filename:=strPath & strFilename, _
            Quality:=xlQualityStandard, _
            IncludeDocProperties:=True, _
            IgnorePrintAreas:=False ', _
            OpenAfterPublish:=True
    ws.Select
End Sub

Bonsoir Jean Eric,

Merci l'idée est la, et le fichier s'enregistre bien sur le bureau, il faudrait cependant que je puisse choisir moi même la destination du fichier via la boite de dialogue...

Une idée ?

Merci

Dans la première version ont choisi le dossier puis une deuxième boîte de dialogue s'ouvre pour nommer le fichier j'ai changé le code tu peux réessayer seulement une boîte de dialogue pour tout

As-tu déjà une idée de où tu veux envoyer le fichier car VBA te permet déjà d'entrer la destination d'avance

De plus dans la version de Jean Éric c'est juste à cause que ton fichier est lui-même dans le bureau

Bonsoir,

Tout fonctionne, c'est parfait !

Merci pour les clarifications, je comprends mieux maintenant..

Pour la destination, le fichier est destiné a partir sur des drives, clés usb ectect, la destination changera très souvent.

Une dernière petite chose, si je souhaite "prénommer" le fichier par la valeurs d'une cellule d'une de mes feuilles c'est possible ?

Merci

Dim NomFichier As String 
Dim fname As Variant

NomFichier = Sheets("Nomdelafeuille").Range("A1").Value 'modifier ici

Sheets(Array("PageGarde", "RepriseTracteur")).Select
    fname = Application.GetSaveAsFilename( _
        InitialFileName:= NomFichier & ".pdf", _
        FileFilter:="PDF files, *.pdf", _
        Title:="Sauvegarder en PDF")
    If fname <> False Then
        ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=fname _
            , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
            :=False, OpenAfterPublish:=True
            End If

Bonjour,

Un grand merci pour l'aide.

Bonne journée.

Babou

Rechercher des sujets similaires à "enregister selection feuille pdf"