XL 2016 macro exporter en PDF feuilles visibles

MC88

XLDnaute Nouveau
Bonjour,

j'ai trouvé une macro afin de sélectionner dans mon sommaire les feuilles qui doivent être visible ou non.

Je souhaiterais que lorsque je clic sur l'image "impression" qu'uniquement les feuilles visibles soient exporter en PDF.

Est-ce que quelqu'un a une solution?
Merci d'avance pour votre aide!
 

Fichiers joints

kiki29

XLDnaute Barbatruc
Salut, à adapter à ton contexte
VB:
Option Explicit

Sub Tst()
Dim Wsh As Worksheet, sFichier As String
    For Each Wsh In ThisWorkbook.Worksheets
        If Wsh.Visible And FeuilleVide(Wsh.Name) = False Then
            sFichier = ThisWorkbook.Path & "\" & Wsh.Name & ".pdf"
            Wsh.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sFichier, _
                                    Quality:=xlQualityStandard, _
                                    IncludeDocProperties:=True, _
                                    IgnorePrintAreas:=False, _
                                    OpenAfterPublish:=False
        End If
    Next Wsh
End Sub

Private Function FeuilleVide(sNomFeuille As String) As Boolean
    FeuilleVide = False
    If WorksheetFunction.CountA(Worksheets(sNomFeuille).UsedRange) = 0 And _
       Worksheets(sNomFeuille).Shapes.Count = 0 Then
        FeuilleVide = True
    End If
End Function
 
Dernière édition:

MC88

XLDnaute Nouveau
Salut,

tout d'abord merci beaucoup!
N'y connaissant absolument rien en VBA comment je peux l'appliquer?
Je fais clic droit sur l'image, affecter une macro, copier/coller du code mais ça ne fonctionne pas.
 

MC88

XLDnaute Nouveau
Super merci!
et pour aller plus loin est-ce qu'il y a une possibilité pour que tout se compile en un seul PDF afin de faciliter les impressions?
 

kiki29

XLDnaute Barbatruc
Salut, voir ici
dans ton cas ceci devrait suffire :

VB:
Sub FusionPDF()
Dim Ar() As Variant, j As Long
Dim Wsh As Worksheet, sFichier As String, sNom As String

    Application.ScreenUpdating = False
    For Each Wsh In ThisWorkbook.Worksheets
        If Wsh.Visible And FeuilleVide(Wsh.Name) = False Then
            ReDim Preserve Ar(j)
            Ar(j) = Wsh.Name
            j = j + 1
        End If
    Next Wsh

    ThisWorkbook.Sheets(Ar).Select
    sNom = ThisWorkbook.Path & "\" & "Fusion.pdf"
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sNom, _
                                    Quality:=xlQualityStandard, _
                                    IncludeDocProperties:=True, _
                                    IgnorePrintAreas:=False, _
                                    OpenAfterPublish:=False
    ThisWorkbook.Sheets(1).Select
    Erase Ar
    Application.ScreenUpdating = True
End Sub
 
Dernière édition:

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas