5.5Automatisation : macros VBA
L'essentiel en 30 secondes
- Project s'automatise en VBA (Visual Basic for Applications), le même langage de macros qu'Excel ou Word : une compétence réutilisable.
- L'enregistreur de macros est le point d'entrée sans code : il capture une suite d'actions (mise en forme, filtre, vue) et la rejoue à volonté.
- L'éditeur VBA (Alt+F11) permet ensuite de lire, écrire et modifier du code pour manipuler le modèle objet : traitements en masse et reporting sur mesure.
Mini-cas filé — Meriem automatise ses mises en forme répétitives
Meriem, cheffe de projet dans une société d'ingénierie & construction (BTP) à Alger, applique à chaque nouveau chantier la même préparation : une mise en forme standard, un filtre par phase et une vue dédiée pour le comité. Cette suite d'actions lui prend du temps et elle l'oublie parfois. Elle active l'onglet Développeur, puis enregistre une macro : elle réalise les actions une fois, Project capture le code. Elle rejoue ensuite la macro sur un autre chantier et mesure le gain. Curieuse, elle ouvre l'éditeur VBA (Alt+F11) pour lire le code, modifie un paramètre, puis associe la macro à un bouton. Elle ne code pas un logiciel : elle automatise un geste répétitif, sans être développeuse.
Cas autonome de cette section : il revient dans le cours, le schéma, le script et le défi 48h de la section 5.5.
1. L'enregistreur de macros
Pour les tâches répétitives, Project est automatisable via VBA (Visual Basic for Applications), le même langage de macros qu'Excel ou Word. Le point d'entrée sans code : l'enregistreur de macros, qui capture une suite d'actions (mise en forme, filtre, vue) et la rejoue à volonté. Meriem obtient ainsi un code qu'elle peut ensuite relire et modifier : c'est le moyen le plus simple d'automatiser sans être développeur.
2. Éditer du VBA
En allant plus loin, on écrit ou édite des macros dans l'éditeur VBA (Alt+F11) pour manipuler le modèle objet de Project : parcourir les tâches, modifier des champs en masse, produire un reporting sur mesure. Automatiser ses tâches répétitives, c'est le dernier palier du parcours : gagner du temps sur l'outil pour se concentrer sur le pilotage. Meriem modifie par exemple un paramètre du code généré, puis associe la macro à un bouton.
3. Automatiser ce qui se répète
La règle d'or : automatiser ce qui est répétitif et rentabilisé par la répétition. Une macro pour une action faite une seule fois n'a pas d'intérêt ; pour un geste hebdomadaire (mise en forme standard, export de reporting, renumérotation en masse), elle fait gagner un temps précieux et évite les erreurs. Meriem commence toujours par l'enregistreur, observe le code généré pour apprendre, puis automatise progressivement ce qui revient souvent.
🔎 Exemple concret — 🔎 Exemple concret — Du sans-code au code
Meriem automatise une préparation répétitive, d'abord sans coder :
Enregistrer : filtre + mise en forme, une fois → code généré.
Rejouer sur un autre projet, puis Alt+F11 pour lire le code.
→ modifier un paramètre, associer la macro à un bouton.
Résultat : un gain de temps durable au service du pilotage.
Réflexe : VBA = même langage qu'Excel/Word (compétence réutilisable).
Vocabulaire de la section
- VBA
- Visual Basic for Applications : langage de macros commun aux applications Office, permettant d'automatiser Project.
Exemple simple : Meriem automatise sa mise en forme répétitive en VBA.
Ce que ce n'est pas : croire que Project n'est pas automatisable.
Réflexe : VBA = compétence réutilisable (Excel/Word).
- Enregistreur de macros
- Outil capturant une suite d'actions pour la rejouer ; il produit du code VBA sans avoir à l'écrire.
Exemple simple : Meriem enregistre filtre + mise en forme en une fois.
Ce que ce n'est pas : vouloir coder avant d'essayer l'enregistreur.
Réflexe : enregistrer = automatiser sans coder.
- Macro
- Programme automatisant une tâche répétitive (mise en forme, filtre, export, traitement en masse).
Exemple simple : Meriem rejoue sa macro sur un autre chantier.
Ce que ce n'est pas : lancer une macro de source inconnue sans prudence.
Réflexe : automatiser ce qui se répète.
- Éditeur VBA
- Environnement (Alt+F11) où l'on lit, écrit et exécute le code des macros.
Exemple simple : Meriem ouvre Alt+F11 pour modifier un paramètre.
Ce que ce n'est pas : ne jamais regarder le code généré.
Réflexe : lire le code pour apprendre.
- Modèle objet
- Structure programmable de Project (Projets, Tâches, Ressources, Affectations…) manipulable en VBA.
Exemple simple : Meriem parcourt les tâches pour un traitement en masse.
Ce que ce n'est pas : modifier chaque tâche à la main.
Réflexe : le modèle objet permet les traitements en masse.
En pratique — En pratique — Automatiser avec des macros VBA
- Activez l'onglet Développeur (Fichier > Options > Personnaliser le ruban) pour accéder aux outils macros.
- Enregistrez une macro : lancez l'enregistreur, effectuez une tâche répétitive (filtre + mise en forme), arrêtez.
- Rejouez la macro sur un autre projet et constatez le gain de temps ; ouvrez l'éditeur VBA (Alt+F11) pour lire le code.
- Modifiez légèrement le code (ex. changer un paramètre) pour l'adapter, et associez la macro à un bouton pour la réutiliser.
Script pas-à-pas — automatiser comme Meriem (10 min)
1) Activez l'onglet Développeur. 2) Lancez l'enregistreur de macros et donnez-lui un nom. 3) Effectuez la tâche répétitive (ex. filtre + mise en forme de Meriem). 4) Arrêtez l'enregistrement. 5) Rejouez la macro sur un autre projet ; mesurez le gain. 6) Ouvrez l'éditeur VBA (Alt+F11), lisez le code, modifiez un paramètre et associez la macro à un bouton. Prudence : testez sur une copie du fichier.
Commencez par enregistrer, observez le code, puis modifiez-le petit à petit : pas besoin d'être développeur pour débuter.
Modèle copier-coller — ma macro pas-à-pas
Onglet Développeur : activé (Fichier > Options > Personnaliser le ruban)
Actions enregistrées : ___ (ex. filtre par phase + mise en forme)
Nom de la macro : ___
Rejouée sur : ___ (autre projet) → gain : ___
Éditeur VBA (Alt+F11) : paramètre modifié ___ · bouton associé ___
Règle : enregistrer d'abord · éditer ensuite · automatiser ce qui se répète · tester sur une copie.
Mise en forme standard
Meriem enregistre une macro qui applique la même mise en forme à chaque chantier.
Filtre récurrent
Meriem automatise un filtre par phase qu'elle refait à chaque point d'avancement.
Reporting sur mesure
Meriem édite le VBA pour générer un tableau récapitulatif personnalisé.
Traitement en masse
Meriem modifie un champ sur des centaines de tâches d'un coup via une macro.
✓ Bonnes pratiques
- Commencer par l'enregistreur (sans coder), puis éditer le VBA.
- Observer le code généré pour apprendre progressivement.
- Automatiser ce qui est répétitif et rentabilisé par la répétition.
✗ Pièges fréquents
- Vouloir coder du VBA avant d'avoir essayé l'enregistreur.
- Automatiser une action faite une seule fois (non rentable).
- Oublier que VBA réutilise les compétences d'Excel/Word.
Points clés à retenir
- Project s'automatise en VBA (même langage de macros qu'Excel/Word).
- L'enregistreur de macros capture des actions et les rejoue : automatiser sans coder.
- L'éditeur VBA permet d'écrire/modifier des macros manipulant le modèle objet.
- Idéal pour les traitements en masse et le reporting sur mesure récurrents.
Défi 48h — appliquez demain
Comme Meriem, enregistrez UNE macro pour une tâche que vous répétez (mise en forme, filtre, vue), rejouez-la sur un autre projet, puis ouvrez l'éditeur VBA (Alt+F11) pour lire le code et modifier un paramètre. Associez la macro à un bouton. Testez sur une copie du fichier.
- Je peux expliquer ce qu'est VBA dans Project.
- Je sais enregistrer une macro sans écrire de code.
- Je sais lire et modifier du code dans l'éditeur VBA pour aller plus loin.
Questions fréquentes
Faut-il savoir programmer pour utiliser les macros VBA ?
Pas pour commencer. L'enregistreur de macros permet d'automatiser sans écrire une ligne : vous réalisez les actions une fois, Project les enregistre en code, et vous les rejouez. C'est suffisant pour beaucoup de tâches répétitives. Pour aller plus loin (traiter des tâches en masse, logique conditionnelle), il faut lire et modifier le code VBA, ce qui demande un apprentissage progressif. VBA est le même langage que dans Excel et Word.
Quels sont les cas d'usage typiques d'une macro dans Project ?
Tout ce qui est répétitif : appliquer une mise en forme standard à chaque nouveau projet ; renuméroter ou reclasser des tâches en masse ; générer un tableau récapitulatif ou un export personnalisé à chaque point d'avancement ; modifier un champ sur des centaines de tâches d'un coup. À la main, ces opérations prennent du temps et sont sujettes aux erreurs ; une macro les exécute en quelques secondes. Le retour se juge par la répétition.
Comment automatiser une tâche répétitive dans Project ?