Bonjour à tous,

L'objectif de ma macro est de pouvoir copier chaque feuille visible de mon tableur vers des feuilles individuelles, pour les sauvegarder ensuite.
J'ai trouvé un code (qui n'est donc pas de moi) qui fonctionne très bien pour copier toutes les feuilles si elles sont toutes visibles.
Cependant, il y aura toujours des feuilles masquées dans le tableur. Dès lors, le code ne fonctionnera pas.

Savez-vous s'il existe un code pour ne sélectionner et ne copier que les feuilles visibles? J'ai essayé plusieurs choses mais pour l'instant rien n'a fonctionné...

Je vous joins le code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
Option Explicit
 
Sub Decoupage()
 
Dim Wbk As Object
Dim Fso As Object
Dim sDossierClasseur As String, sNomDossier As String, sNomFichier As String
Dim Ws As Worksheet
 
    Application.ScreenUpdating = False
    sDossierClasseur = ThisWorkbook.Path
    sNomDossier = Format(Date, "yyyymmdd")
 
    Set Fso = CreateObject("Scripting.FileSystemObject")
    If Fso.FolderExists(sDossierClasseur & "\" & sNomDossier) Then
        Fso.DeleteFolder sDossierClasseur & "\" & sNomDossier, True
    End If
    Fso.CreateFolder sDossierClasseur & "\" & sNomDossier
    Set Fso = Nothing
 
 
     For Each Ws In ThisWorkbook.Worksheets
    ThisWorkbook.Worksheets(Ws.Name).Copy
 
        sNomFichier = "F_" & Ws.Name & "_" & Format(Date, "yyyymmdd") & ".xlsx"
 
        Set Wbk = ActiveWorkbook
        Application.DisplayAlerts = False
 
        Wbk.SaveAs sDossierClasseur & "\" & sNomDossier & "\" & sNomFichier, xlOpenXMLWorkbook
        Application.DisplayAlerts = True
 
 
        Wbk.Close
        Set Wbk = Nothing
    Next Ws
    Application.ScreenUpdating = True
End Sub
Merci par avance