Exporter des onglets mais exclure les 5 premiers onglets
sionbeach
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
Patrice33740 Messages postés 8561 Date d'inscription Statut Membre Dernière intervention -
Patrice33740 Messages postés 8561 Date d'inscription Statut Membre Dernière intervention -
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
- Fusionner des onglets excel - 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.