Exporter des onglets mais exclure les 5 premiers onglets
sionbeach
Messages postés
2
Statut
Membre
-
Patrice33740 Messages postés 8930 Statut Membre -
Patrice33740 Messages postés 8930 Statut Membre -
Salut,
J'ai trouvé un code qui me permet d'exporter tous les onglets d'un document Excel et de les enregistrer séparément. Mon souci est que je souhaite exporter les onglets qu'à partir du Feuil6 jusqu'à la fin (le nombre d'onglets peut varier alors je laisse la commande en boucle) mais voilà, les 5 premiers onglets je ne souhaite pas les exporter, appelons-les : page1, page2, page3, page4, page5
Voici mon code actuel
Sub enregistrer()
Dim o As Worksheet 'déclare la variable o (Onglet)
Dim no As String 'déclare la variable no (Nom de l'Onglet)
Dim chem As String 'déclare la variable chem (CHEMin)
chem = ThisWorkbook.Path & "\" 'définit la variable chem
For Each o In Sheets 'boucle sur tous les onglets du classeur
no = o.Name 'définit la variable no
o.Copy 'copy l'onglet
'crée un nouveau classeur ayant pour nom de nom de l'onglet dans le même dossier
ActiveWorkbook.SaveAs chem & no & ".xls", FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
Next o 'prochain onglet de la boucle
End Sub
Merci d'avance pour vos réponses :-)
Cordialement
Sof
J'ai trouvé un code qui me permet d'exporter tous les onglets d'un document Excel et de les enregistrer séparément. Mon souci est que je souhaite exporter les onglets qu'à partir du Feuil6 jusqu'à la fin (le nombre d'onglets peut varier alors je laisse la commande en boucle) mais voilà, les 5 premiers onglets je ne souhaite pas les exporter, appelons-les : page1, page2, page3, page4, page5
Voici mon code actuel
Sub enregistrer()
Dim o As Worksheet 'déclare la variable o (Onglet)
Dim no As String 'déclare la variable no (Nom de l'Onglet)
Dim chem As String 'déclare la variable chem (CHEMin)
chem = ThisWorkbook.Path & "\" 'définit la variable chem
For Each o In Sheets 'boucle sur tous les onglets du classeur
no = o.Name 'définit la variable no
o.Copy 'copy l'onglet
'crée un nouveau classeur ayant pour nom de nom de l'onglet dans le même dossier
ActiveWorkbook.SaveAs chem & no & ".xls", FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
Next o 'prochain onglet de la boucle
End Sub
Merci d'avance pour vos réponses :-)
Cordialement
Sof
Configuration: Windows / Chrome 77.0.3865.90
A voir également:
- Exporter des onglets mais exclure les 5 premiers onglets
- Restaurer les onglets chrome - Guide
- Exporter favoris chrome - Guide
- Exporter conversation sms android - Guide
- Exporter favoris firefox - Guide
- Ouvrir plusieurs onglets en même temps - Guide
2 réponses
Bonjour,
Il faut faire une boucle à partir du 6ème onglet comme ceci:
Il faut faire une boucle à partir du 6ème onglet comme ceci:
Dim i As Integer
For i = 6 To ThisWorkbook.Worksheets.Count
MsgBox Worksheets(i).Name
'mettre ton code ici en remplaçant la MsgBox par une variable
Next i
Re,
Sans utiliser le presse papier qui peux réserver des surprises (ni activeworkbook pour la même raison)
Il suffit de définir le nom des feuilles (quelle que soient leurs positions) à ne pas copier dans le premier Case.
Sans utiliser le presse papier qui peux réserver des surprises (ni activeworkbook pour la même raison)
Option Explicit
Sub enregistrer()
Dim wbk As Workbook
Dim wsh As Worksheet
Dim nom As String
Dim dos As String
dos = ThisWorkbook.Path & "\"
For Each wsh In ThisWorkbook.Worksheets
nom = wsh.Name
Select Case nom
Case "page1", "page2", "page3", "page4", "page5"
Case Else
Set wbk = Workbooks.Add(xlWorksheet)
wbk.Worksheets(1).Name = nom & "0" 'pour éviter les doublons
wsh.Copy after:=wbk.Worksheets(1)
Application.DisplayAlerts = False
wbk.Worksheets(1).Delete
wbk.SaveAs dos & nom & ".xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled
Application.DisplayAlerts = True
wbk.Close
Set wbk = Nothing
End Select
Next wsh
End Sub
Il suffit de définir le nom des feuilles (quelle que soient leurs positions) à ne pas copier dans le premier Case.