Créer un nouveau classeur pour chaque feuille de calcul avec Excel VBA

Les analystes qui utilisent Excel doivent souvent analyser leurs classeurs dans des registres distincts pour chaque feuille. En d’autres termes, ils doivent créer un nouveau classeur pour chacune des feuilles de calcul du classeur existant. Vous pouvez imaginer à quel point cette tâche est difficile lorsque vous devez le faire manuellement. La macro suivante aide à automatiser cette tâche.
Fermez la boucle dans la boucle en copiant chaque feuille, puis transférez la copie dans le nouveau classeur que vous venez de créer. Il est intéressant de sauvegarder les nouveaux classeurs dans le même dossier que le classeur d’origine, en plus du nom de la feuille de calcul (monclasseur.SaveAs ThisWorkbook.Path & “\” & mafeuille.Name).

Sub CreerNouveauClasseurChaqueFeuille ()
'Étape 1: Déclaration de toutes les variables
Dim mafeuille As Worksheet
Dim monclasseur As Workbook
'Étape 2: Commencez la boucle pour toutes les feuilles
For Each mafeuille In ThisWorkbook.Worksheets
'Étape 3: Créez et enregistrez un nouveau jeu de classeurs
Set monclasseur = Workbooks.Add
monclasseur.SaveAs ThisWorkbook.Path & "\" & mafeuille.Name
'Étape 4: copie de la feuille et envoi dans le nouveau classeur
mafeuille.Copy Before:=monclasseur.Worksheets(1)
monclasseur.Close SaveChanges:=True
'Étape 5: La boucle passe à la feuille suivante
Next mafeuille
End Sub

Commentaires
Tous les noms de feuilles ne seront pas convertis en noms de fichiers valides. Sous Windows, certains caractères ne peuvent pas être utilisés dans les noms de fichiers. Il s’agit des barres obliques (\) et (/), deux points (.), Astérisque (*), point d’interrogation (?), Barre (|), guillemets (“), caractères principaux (>) et minorités (<). Ceci est basé sur le fait que certains d’entre eux (par exemple des guillemets, des signes de ruisseau, des signes de majorité et des signes de majorité) peuvent être utilisés dans le nom de la feuille de calcul.
Si la macro est exécutée pour les feuilles, dans les noms, elles apparaissent. ces signes suivront, alors il y aura une erreur. Et ainsi le message d’erreur sera affiché, si la macro tente de créer un nouveau fichier à partir de la feuille nommée May \ revenue (la raison sera le caractère de canal). Pour aller au but: dans les noms de feuille, vous devriez éviter d’utiliser ces caractères réservés.

1. Dans la première étape, deux variables d’objet sont décodées. La variable mafeuille crée un conteneur en mémoire pour chaque feuille que la macro transfère à la boucle. La variable monclasseur crée un conteneur pour chaque classeur nouvellement créé.
2. Dans la deuxième étape, la macro commence à boucler des feuilles. L’utilisation de l’objet ThisWorkbook vous permet de copier la feuille active du classeur dans lequel se trouve le code de macro, et non du classeur nouvellement créé.
3. Dans la troisième étape, créez et enregistrez un nouveau classeur. Il sera sauvé au même emplacement que le classeur d’origine (ThisWorkbook). Il reçoit le même nom que la feuille active.

4. Dans la quatrième étape, la feuille active est copiée, puis le paramètre Before est appliqué, ce qui provoque son placement en tant que premier onglet de la nouvelle feuille.
5. A la cinquième étape, le carreau passe à la feuille de finition. Après analyse de toutes les feuilles du cahier de travail macro, le travail est terminé.

Comment utiliser la macro?
Pour implémenter cette macro, vous pouvez copier et coller son code en mode standard.
À cet égard:
1. Utilisez la combinaison Alt + F11 pour activer l’éditeur Visuai Basic.
2. Dans la fenêtre Projet, cliquez avec le bouton droit sur le nom du projet ou de la feuille.
3. Sélectionnez Insérer / Module dans le menu.
4. Entrez le code iub dans le module nouvellement créé
S’abonner
Notifier de
0 Commentaires
Inline Feedbacks
Voir tous les commentaires

Initiation à Excel

Fonctions Excel

Excel VBA

Macros VBA Utiles

Plus d'outils

Sur Facebook

Sur YouTube

0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x