XL 2016 aide macro - enregistrement de certains onglets classeur xlsm en pdf

laurent67

XLDnaute Junior
Bonjour le forum,

novice en vba j'ai chercher sur les différents fils de discussion du forum ce qui pouvait me servir et je suis tombé sur une discussion qui m'a donner le code vba que je cherchais, mais (parce qu'il y a un mais sinon je n'aurai pas fait ce post), voici le code vba en question

VB:
Sub PDF_Excel()
Dim Ws As Worksheet, Fichier As String
'Boucle sur toutes les feuille de calcul du classeur.
For Each Ws In ThisWorkbook.Worksheets
    If Ws.Name <> "base" And Ws.Name <> "modele" And Ws.Name <> "parametrage" And Ws.Name <> "dernier_utilisateur" Then
        Fichier = ThisWorkbook.Path & "\" & Ws.Name & ".pdf"
    'Crée un pdf de chaque feuille
        Ws.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Ws.Name & Format(Date, dd - mm - yyyy) & ".pdf", _
        Quality:=xlQualityStandard, IncludeDocProperties:=True, _
        IgnorePrintAreas:=True, OpenAfterPublish:=True
    End If
Next Ws
End Sub

mes 2 soucis:
1er : Fichier = ThisWorkbook.Path & "\" & Ws.Name & ".pdf" est bien défini mais l'export de l'onglet créer en pdf ne s'enregistre pas dans cet espace
2eme : le nom du fichier devrait être du type "nom 13-08-2020" mais le format de la date ne correspond pas c'est la valeur numérique de la date de type 44056

Merci d'avance pour votre aide.
 
Solution
Salut, un coup d'œil ici si tu es curieux ?

Sinon pour ton code
VB:
Option Explicit

Sub PDF_Excel()
Dim Ws As Worksheet, Fichier As String
    Application.ScreenUpdating = False
    For Each Ws In ThisWorkbook.Worksheets
        If Ws.Name <> "base" And _
           Ws.Name <> "modele" And _
           Ws.Name <> "parametrage" And _
           Ws.Name <> "dernier_utilisateur" Then
            Fichier = ThisWorkbook.Path & "\" & Ws.Name
            Ws.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Fichier & " " & Format(Date, "dd-mm-yyyy") & ".pdf", _
                                   Quality:=xlQualityStandard, IncludeDocProperties:=True, _
                                   IgnorePrintAreas:=True, OpenAfterPublish:=False...

kiki29

XLDnaute Barbatruc
Salut, un coup d'œil ici si tu es curieux ?

Sinon pour ton code
VB:
Option Explicit

Sub PDF_Excel()
Dim Ws As Worksheet, Fichier As String
    Application.ScreenUpdating = False
    For Each Ws In ThisWorkbook.Worksheets
        If Ws.Name <> "base" And _
           Ws.Name <> "modele" And _
           Ws.Name <> "parametrage" And _
           Ws.Name <> "dernier_utilisateur" Then
            Fichier = ThisWorkbook.Path & "\" & Ws.Name
            Ws.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Fichier & " " & Format(Date, "dd-mm-yyyy") & ".pdf", _
                                   Quality:=xlQualityStandard, IncludeDocProperties:=True, _
                                   IgnorePrintAreas:=True, OpenAfterPublish:=False
        End If
    Next Ws
    Application.ScreenUpdating = True
End Sub
 
Dernière édition:

laurent67

XLDnaute Junior
@kiki29 : MERCI !!! c’était si simple et pourtant j'en était si loin ;(

UNe question pourquoi utiliser les 2 lignes Application.ScreenUpdating car avec ou sans les onglets dans adobe s'ouvre après chaque traitement? est ce que cela a une autre utilité que d'empécher dans excel l’apparition des fenêtres pendant le déploiement de la macro?

Pour ta proposition de lien si je suis curieux, j'avais repéré ce lien dans une précédente discussion mais je t'avoue que je n'ai pas encore pris le temps de regardé. par contre je me le suis m'y en favori pour prendre le temps de regarder attentivement.

Pour en finir je te renouvelle mes remerciements.
 

Discussions similaires

Réponses
7
Affichages
717