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 :
Merci par avance
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
Partager