Faire un diagramme de Gantt dans Excel
Le graphique à barres empilées que proposent la plupart des tutoriels est joli en capture d'écran et pénible à vivre : il faut le reparamétrer à chaque tâche ajoutée. La mise en forme conditionnelle donne un meilleur résultat, et elle tient en deux formules.
Le tableau de départ
Un planning lisible tient dans quatre colonnes. Le reste — pourcentages d'avancement, responsables, budgets — s'ajoute plus tard, à droite, sans rien casser.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Tâche | Début | Durée | Fin |
| 2 | Étude | 02/11/2026 | 5 | 06/11/2026 |
| 3 | Commande | 09/11/2026 | 4 | 13/11/2026 |
| 4 | Montage | 16/11/2026 | 6 | 23/11/2026 |
La formule de la colonne D, en D2 puis recopiée vers le bas :
=SERIE.JOUR.OUVRE(B2;C2-1;$Z$1:$Z$20)
Le -1 n'est pas une coquette : sans lui, une tâche d'un jour
finirait le lendemain de son début. La durée compte le jour de démarrage.
La plage $Z$1:$Z$20 contiendra les jours fériés — nous y venons.
SERIE.JOUR.OUVRE s'y appelle
WORKDAY, et les points-virgules deviennent des virgules.
Excel traduit automatiquement à l'affichage : une formule saisie en français dans un Excel
français reste correcte pour un collègue dont l'interface est en anglais.
L'échelle de dates
À droite du tableau, une colonne par jour. En F1, la première date ; puis chaque colonne ajoute un jour :
F1 : =B2
G1 : =F1+1 puis recopier vers la droite sur 60 à 120 colonnes
Sélectionnez toute la ligne 1 à partir de F, réglez le format de nombre personnalisé sur
j pour n'afficher que le quantième, et donnez aux colonnes une
largeur de 2,5. Vous obtenez une trame dense et lisible.
Une deuxième ligne d'en-tête rend le planning beaucoup plus confortable — le mois, affiché une seule fois par mois :
F2 : =SI(MOIS(F1)<>MOIS(E1);MAJUSCULE(TEXTE(F1;"mmm aaaa"));"")
Les barres, par mise en forme conditionnelle
C'est ici que la méthode se sépare du graphique à barres empilées. Plutôt que de dessiner, on colore : chaque cellule de la grille se demande si sa date tombe dans la tâche de sa ligne.
- Sélectionnez la grille, de
F3jusqu'à la dernière colonne et la dernière tâche. - Accueil → Mise en forme conditionnelle → Nouvelle règle → Utiliser une formule.
- Saisissez la formule ci-dessous, puis choisissez un remplissage vert.
=ET(F$1>=$B3;F$1<=$D3)
Le placement des $ est tout le secret.
F$1 fige la ligne : quelle que soit la cellule, on regarde
toujours la date de l'échelle, en haut. $B3 et
$D3 figent la colonne : on regarde toujours le début et la fin de
la tâche, à gauche. Sans ces dollars, la règle se décale et colore n'importe quoi.
| A | F | G | H | I | J | K | L | |
|---|---|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
| 3 | Étude | |||||||
| 4 | Commande |
Jours ouvrés et jours fériés français
Le planning est juste, mais la barre traverse les week-ends : la tâche a l'air de durer plus longtemps qu'elle ne dure. Deux corrections s'imposent.
Déclarer les jours fériés
Placez-les dans une colonne à l'écart — Z1:Z20 dans nos
formules. Six d'entre eux ont une date fixe (1er janvier, 1er mai,
8 mai, 14 juillet, 15 août, 1er novembre, 11 novembre, 25 décembre). Les trois
autres dépendent de Pâques, qui se calcule par cette formule — la voici pour l'année en A1 :
' Dimanche de Pâques
=ARRONDI(DATE(A1;4;1)/7+MOD(19*MOD(A1;19)-7;30)*14%;0)*7-6
' Les trois fériés qui en découlent
Lundi de Pâques = Pâques + 1
Ascension = Pâques + 39
Lundi de Pentecôte = Pâques + 50
Vérification faite dans Excel : cette formule donne le dimanche 5 avril 2026, le dimanche 28 mars 2027 et le dimanche 16 avril 2028. Elle est juste de 1900 à 2199.
Ne colorer que les jours travaillés
Remplacez la règle de mise en forme conditionnelle par celle-ci :
=ET(F$1>=$B3;F$1<=$D3;JOURSEM(F$1;2)<6;NB.SI($Z$1:$Z$20;F$1)=0)
Deux conditions s'ajoutent : JOURSEM(F$1;2)<6 écarte le
samedi et le dimanche — l'argument 2 fait commencer la semaine
le lundi, ce qui donne 6 et 7 pour le week-end. Et
NB.SI(...)=0 écarte les dates présentes dans la liste des fériés.
Ajoutez une seconde règle, en gris pâle cette fois, pour teinter les colonnes de week-end sur toute la hauteur du planning. La lecture devient immédiate :
=JOURSEM(F$1;2)>5
Une tâche de 4 jours ouvrés démarrant le lundi 9 novembre 2026 se termine le vendredi 13, et non le jeudi 12 : le mercredi 11 novembre est férié, la formule l'a sauté. C'est précisément ce qu'un planning fait à la main oublie une fois sur deux.
Aujourd'hui, retards et jalons
Le trait d'aujourd'hui. Une troisième règle, appliquée à toute la grille, avec une bordure gauche épaisse et rouge :
=F$1=AUJOURDHUI()
Les retards en rouge. Ajoutez une colonne Avancement
en E (de 0 à 100 %), puis une règle prioritaire :
=ET(F$1>=$B3;F$1<=$D3;$D3<AUJOURDHUI();$E3<100%)
Toute tâche dont la fin est passée alors qu'elle n'est pas terminée s'allume. Placez cette règle au-dessus de la règle verte dans le gestionnaire, et cochez « Interrompre si Vrai » : l'ordre des règles décide de la couleur affichée.
Les jalons. Une tâche de durée nulle ne produit aucune barre. Donnez-lui une durée
de 1 et une règle dédiée qui affiche un losange, via un format personnalisé de cellule
"◆" sur fond transparent.
Là où cette méthode s'arrête
Ce planning est honnête et vous appartient. Trois choses lui manqueront le jour où le projet grossit.
- Les dépendances. Rien ne relie la fin d'« Étude » au début de « Commande ». Si
l'étude glisse de trois jours, vous devez décaler à la main toutes les tâches suivantes.
On peut écrire
=SERIE.JOUR.OUVRE(D2;1)en B3, mais la chaîne casse dès qu'on insère une ligne ou qu'on réordonne. - La manipulation directe. Allonger une tâche suppose de retourner dans la colonne C et de taper un nombre. Sur un planning de trente lignes, l'aller-retour permanent entre le tableau et la grille use.
- Le chemin critique. Savoir quelles tâches n'ont aucune marge demande un calcul de marges avant et arrière que la mise en forme conditionnelle ne sait pas porter.
Tant que votre planning tient sur un écran et bouge une fois par semaine, la méthode ci-dessus suffit largement — et c'est pour cela que ce guide existe. Au-delà, il faut un moteur qui recalcule les dépendances à chaque geste.
Et si vous ne voulez pas le maintenir vous-même
Le module reprend tout ce qui précède et ajoute ce que les formules ne savent pas faire : on attrape une tâche à la souris, on l'allonge, et les tâches qui en dépendent se recalent seules — en jours ouvrés, chemin critique affiché.
Essayer la démonstration en ligne → Licence à vie 19 €, sans abonnement · Remboursé 30 jours · Windows + Excel 2016 ou plus récentQuestions fréquentes
Pourquoi ne pas utiliser un graphique à barres empilées ?
C'est la méthode la plus citée, et la plus pénible à vivre : il faut masquer la première série, inverser l'axe des catégories, reparamétrer l'échelle à chaque changement de période, et le graphique ne suit pas l'ajout d'une tâche. La mise en forme conditionnelle se recalcule toute seule et s'imprime correctement.
Comment gérer les congés de l'équipe, en plus des jours fériés ?
Ajoutez-les simplement à la même colonne que les jours fériés : SERIE.JOUR.OUVRE et NB.SI traitent toutes ces dates de la même façon. Pour distinguer les congés par personne, il faut passer à SERIE.JOUR.OUVRE.INTL et une plage par ressource.
Mon planning couvre deux ans : faut-il 730 colonnes ?
Non. Passez à une échelle hebdomadaire : F1 reste la date de début, G1 devient =F1+7, et la règle compare des semaines plutôt que des jours. Vous gardez une lecture d'ensemble, au prix de la précision journalière.
Peut-on imprimer ce planning proprement ?
Oui, à condition de figer les volets sur les colonnes A à D, de définir la zone d'impression et de cocher « Répéter les colonnes à gauche » dans la mise en page. Sans cela, les pages 2 et suivantes sortent sans le nom des tâches.
La mise en forme conditionnelle ralentit-elle le classeur ?
Elle est recalculée à chaque modification de la feuille. Sur 30 tâches et 120 colonnes, c'est imperceptible. À partir de quelques milliers de cellules concernées et plusieurs règles superposées, la saisie devient sensiblement moins fluide : réduisez l'échelle ou limitez la plage aux colonnes réellement utilisées.