Comment exécuter une macro simultanément sur plusieurs classeurs ?
Le traitement de plusieurs classeurs Excel exige souvent de répéter la même opération ou tâche automatisée sur de nombreux fichiers. Ouvrir chaque classeur un par un pour exécuter une macro prend non seulement beaucoup de temps, mais accroît également le risque d’erreur, surtout lorsqu’un grand nombre de fichiers est concerné. Automatiser ce processus devient donc essentiel pour gagner en productivité et en précision.
Grâce à VBA (Visual Basic for Applications), optimisez votre flux de travail en exécutant automatiquement une macro sur chaque classeur d’un dossier donné — un gain de temps précieux et une garantie de cohérence. Ce guide vous explique comment configurer et utiliser une solution VBA pour appliquer votre macro à plusieurs fichiers, sans les ouvrir manuellement.
Voici quelques scénarios typiques où cette approche est utile :
- Appliquer une mise en forme ou des calculs à un ensemble de rapports mensuels
- Standardiser les étapes de nettoyage des données sur un ensemble d’exports
- Mettre à jour par lots des modèles ou ajouter des structures à des fichiers anciens
Exécuter la même macro sur plusieurs classeurs grâce à un code VBA
Pour exécuter efficacement la même macro sur plusieurs classeurs sans les ouvrir manuellement, utilisez un script VBA conçu pour les opérations par lots : il vous suffit de sélectionner un dossier, et chaque fichier Excel qu’il contient sera traité automatiquement. Idéal pour la plupart des tâches courantes d’automatisation par macro.
Avant de commencer :
- Tous les classeurs cibles sont fermés. Le script les ouvrira et les traitera automatiquement selon vos besoins.
- La macro que vous souhaitez exécuter ne doit nécessiter aucune interaction utilisateur (comme des boîtes de dialogue ou des invites de saisie), car ces éléments interrompraient le traitement par lots.
- Vous avez enregistré votre travail, car le traitement par lots de macros ne peut pas être facilement annulé et risque d’écraser des données si le code n’est pas soigneusement conçu.
Suivez ces étapes pour appliquer une macro à plusieurs classeurs :
1. Appuyez sur les touches « ALT + F11 » pour ouvrir la fenêtre « Microsoft Visual Basic pour Applications ».
2. Dans l’éditeur VBA ouvert, cliquez sur «Insertion» > «Module» pour créer un nouveau module, puis collez la macro fournie dans la fenêtre vide du module.
Code VBA : exécuter la même macro simultanément sur plusieurs classeurs :
Sub LoopThroughFiles()
Dim xFd As FileDialog
Dim xFdItem As Variant
Dim xFileName As String
Set xFd = Application.FileDialog(msoFileDialogFolderPicker)
If xFd.Show = -1 Then
xFdItem = xFd.SelectedItems(1) & Application.PathSeparator
xFileName = Dir(xFdItem & "*.xls*")
Do While xFileName <> ""
With Workbooks.Open(xFdItem & xFileName)
'your code here
End With
xFileName = Dir
Loop
End If
End Sub
Remarques et conseils importants :
- Dans le code ci-dessus, repérez la ligne
With Workbooks.Open(xFdItem & xFileName). Copiez-y le code de votre macro souhaitée (en excluant ses propres lignes)SubetEnd Sub) entre cette ligne etEnd With. Ainsi, l’opération s’exécutera automatiquement dans chaque classeur ouvert. - Vérifiez attentivement la logique de votre macro ainsi que les chemins utilisés afin de garantir un traitement par lots correct, et envisagez de tester d’abord sur un petit ensemble de fichiers si votre macro modifie des données.
Voir la capture d’écran illustrant l’emplacement où coller la logique de votre macro :

3. Appuyez sur la touche « F5 » dans l’éditeur VBA pour exécuter le script ; une boîte de dialogue de sélection de dossier s’affichera aussitôt.
4. Dans la fenêtre « Parcourir », sélectionnez le dossier contenant tous les classeurs à traiter. Le script analysera chaque fichier Excel présent à cet emplacement et appliquera la logique de votre macro.

5. Cliquez sur « OK » pour lancer l’opération par lots. La macro que vous avez ajoutée sera exécutée sur tous les classeurs ciblés du dossier sélectionné. Les traitements plus volumineux peuvent prendre davantage de temps, selon la complexité de votre macro et le nombre de fichiers concernés.
- Sécurité des macros : Si une invite s’affiche, activez les macros ou exécutez-les depuis un emplacement approuvé.
- Cible Type de fichier : Le modèle
*.xls*inclut.xlsx,.xlsmet.xlsb. Ajustez-le si nécessaire. - Qualification complète à l’intérieur de With :Utilisez des points initiaux (par exemple,)
.Worksheets("Sheet1")) pour que les actions s’appliquent au classeur ouvert.
Meilleurs outils de productivité Office
Boostez vos compétences Excel avec Kutools pour Excel et découvrez une efficacité inégalée.Kutools pour Excel propose plus de 300 fonctionnalités avancées pour améliorer votre productivité et Gagner du temps.Cliquez ici pour obtenir la fonctionnalité dont vous avez le plus besoin...
Office Tab apporte une interface à onglets à Office et rend votre travail bien plus facile
- Activez l’édition et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
- Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
- Augmente votre productivité de 50 % et vous fait économiser des centaines de clics de souris chaque jour !
Tous les compléments Kutools. Un seul installateur
Kutools for Office regroupe les compléments pour Excel, Word, Outlook et PowerPoint, ainsi que Office Tab Pro, ce qui en fait le choix idéal pour les équipes travaillant à travers les applications Office.
- Suite tout-en-un— Compléments Excel, Word, Outlook et PowerPoint + Office Tab Pro
- Un seul installateur, une seule licence— installation en quelques minutes (compatible MSI)
- Fonctionne mieux ensemble— productivité optimisée dans toutes les applications Office
- Essai gratuit de 30 jours avec toutes les fonctionnalités— aucune inscription, aucune carte bancaire
- Meilleur rapport qualité-prix— économisez par rapport à l’achat de compléments individuels