Amélioration du code pour exporter en .pdf

Bonjour,

J'aimerai récupérer une partie de ce code qui est super pour enregistrer sous mes dossiers mais au lieu d'enregistrer sous, j'aimerai pouvoir exporter en .PDF la feuille.

Public Sub Expoter_PDF() 'Déclaration des variables Dim currentWB As Workbook Dim fd As FileDialog Dim sPath As String, sFilename As String, Message As String Dim Response As VbMsgBoxResult, Styles As VbMsgBoxStyle, Title As String 'Initialisation des variables Set currentWB = ThisWorkbook sPath = currentWB.Path & Application.PathSeparator sFilename = ActiveSheet.Range("P37").Value & ".xlms" Message = "Le fichier " & sFilename & " va être enregistré" & vbLf Message = Message & "dans le répertoire " & sPath & "." Styles = vbOKCancel + vbInformation Title = "Nouvel enregistrement" 'Confimration de l'enregistrement Response = MsgBox(Message, Styles, Title) If Response = vbOK Then 'Enregistrement sous... 'Application.DisplayAlerts = False Set fd = Application.FileDialog(msoFileDialogSaveAs) fd.InitialFileName = sPath & sFilename If fd.Show <> 0 Then currentWB.SaveAs fd.SelectedItems(1) End If End If End Sub

Merci d'avance pour vos aide toujours pertinente.

Bonne journée.

Bonjour,

Une proposition à tester :

currentWB.Worksheets(1).ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
                fd.SelectedItems(1), Quality _
                :=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
                OpenAfterPublish:=True

cf PJ

Bouben

9exportpdf.xlsm (17.12 Ko)

Bonjour,

Non avec ce code ça ne marche pas

Bonne journée

Bonjour à tous,

... Non avec ce code ça ne marche pas ...

Cela ne décrit pas vraiment le souci.

Un essai ...

Public Sub Expoter_PDF()
    'Déclaration des variables
Dim currentWB As Workbook
Dim fd As FileDialog
Dim sPath As String, sFilename As String, Message As String
Dim Response As VbMsgBoxResult, Styles As VbMsgBoxStyle, Title As String

    'Initialisation des variables
    Set currentWB = ThisWorkbook
    sPath = currentWB.Path & Application.PathSeparator
    sFilename = ActiveSheet.Range("P37").Value & ".pdf"

    Message = "Le fichier " & sFilename & " va être enregistré" & vbLf
    Message = Message & "dans le répertoire " & sPath & "."
    Styles = vbOKCancel + vbInformation
    Title = "Nouvel enregistrement"

    'Confimration de l'enregistrement
    Response = MsgBox(Message, Styles, Title)
    If Response = vbOK Then
        'Enregistrement sous...
        Application.DisplayAlerts = False
        Set fd = Application.FileDialog(msoFileDialogSaveAs)
        fd.InitialFileName = sPath & sFilename

        If fd.Show <> 0 Then
           currentWB.Worksheets(1).ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
                sFilename, Quality:=xlQualityStandard, IncludeDocProperties:=True, _
                IgnorePrintAreas:=False, OpenAfterPublish:=True
        End If
    End If
End Sub

ric

Salut Ric

Juste pour te dire...Ca fait du bien de voir un beau code indenté comme il faut

Bonjour à tous,

Merci BrunoM45

J'utilise Smart Indenter (je crois que c'est eriiic qui m'a fait découvrir cet utilitaire).

https://www.add-ins.com/macro-products-for-Microsoft-Excel/how-to-indent-vba-code/how-to-indent-vba-code.htm

ric

Bonjour,

@BrunoM45,

Merci !...

Cdlt.

Bonjour,

Non avec ce code ça ne marche pas

Bonne journée

Bonjour,

Avec ce type de message, j'ai envie de répondre : "chez moi, ça marche"

Nous voilà bien avancés ...

Bonne journée

Bouben

Bonjour,

LOL, excusez moi pour cette réponse farfelus

Oui en effet le code fonctionne très bien, mon seul HIC maintenant, c'est que quand j’exécute le code, il m''exporte le 1er onglet de mon classeur au lieu de celui que je désire c'est à dire le 3ème qui s'appelle : "F1".

Merci à tous pour vos réponses !

Bonjour à tous,

Si suffit de nommer la feuille Worksheets("F1")

        If fd.Show <> 0 Then
           currentWB.Worksheets("F1").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
                sFilename, quality:=xlQualityStandard, includedocproperties:=True, _
                ignoreprintareas:=False, openafterpublish:=True
        End If

ric

Merci pour tout ric, tout marche comme je le souhaite !

Le post est donc clos.

Rechercher des sujets similaires à "amelioration code exporter pdf"