• Initiateur de la discussion Initiateur de la discussion Sassy
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

S

Sassy

Guest
Bonjour à tous,

J'ai besoin de votre aide pour la réalisation d'une macro.

J'ai un classeur qui comporte énormément de feuilles et que j'aimerais diviser.

Au final, je souhaiterais créer autant de classeurs que j'ai de feuilles dans le classeur d'origine.

Chaque classeur doit avoir comme nom, le nom de la feuille dans le classeur d'origine. (Dans mon exemple en attachement, création de 3 classeurs appelés Dossier1, Dossier2, Dossier3).

Merci d'avance pour votre aide.

Sassy
 

Pièces jointes

Re : Scinder un classeur

Bonjour Sassy et le Forum

met ceci dans un module de ton classeur
(n'oublie pas de faire une sauvegarde avant car ton classeur d'origine n'existera plus!)
Sub Macro1()
'
Dim i%, Nom
'commencer par la dernière feuille
For i = ThisWorkbook.Sheets.Count To 2
Nom = ThisWorkbook.Sheets(i).Name
Sheets(i).Move
ActiveWorkbook.SaveAs Filename:= _
"C:\LeChemin\" & "Nom" & ".xls", _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
Workbooks(Nom & ".xls").Close False
Next
'il ne reste plus que la première feuille
Nom = ThisWorkbook.Sheets(1).Name
ActiveWorkbook.SaveAs Filename:= _
"C:\LeChemin\" & "Nom" & ".xls", _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
End Sub

Bon courage et à +
Denis
 
Re : Scinder un classeur

Bonjour Sassy, bonjour le forum,

La macro ci-dessous récupère le chemin d'accès de ton fichier d'origine et crée les nouveaux classeurs dans le même dossier :
Code:
Sub Macro1()
Dim chem As String 'déclare la variable chem (CHEMin)
Dim o As Worksheet 'déclare la variable o (Onglet)
Dim n As String 'déclare la variable n (Nom)
 
chem = ThisWorkbook.Path & "\" 'définit le chemin d'accès
 
For Each o In Sheets 'boucle sur tous les onglets du classeur
    n = o.Name & ".xls" 'définit le nom du classeur
    o.Copy 'copie l'onglet sur un classeur vierge
    ActiveWorkbook.SaveAs (chem & n) 'nomme le nouveau classeur crée
    'ActiveWorkbook.Close 'ferme le nouveau classeur (à toi de voir ??? Supprime l'apostrophe au debut de ligne pour activer)
Next o 'prochain onglet de la boucle
End Sub

Édition :

Salut Denis on s'est crosé. Nos codes sont similaires sauf que le mien Copy au lieu de Move et donc garde le classeur d'origine car je n'étais pas sûr que Sassy veuille le supprimer...
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
2
Affichages
264
Réponses
5
Affichages
401
Réponses
5
Affichages
271
Réponses
4
Affichages
949
Retour