En bref —
INDIRECTprend une chaîne de texte qui ressemble à une référence et renvoie la référence vivante qu'elle décrit. Syntaxe :=INDIRECT(réf_texte, [a1]).=INDIRECT("A1")renvoie ce qui se trouve dans A1 ;=INDIRECT(B1)renvoie ce qui se trouve dans la cellule dont l'adresse est tapée dans B1. C'est tout l'intérêt : vous calculez une référence sous forme de texte, puis INDIRECT la rend réelle. Deux choses à savoir avant de vous appuyer dessus : elle est volatile (elle se recalcule à chaque modification, n'importe où) et son texte est invisible pour le graphe de dépendances d'Excel — renommer une feuille casse donc silencieusement chaqueINDIRECT("AncienNom!…")avec#REF!. Ne l'utilisez que lorsque la référence doit vraiment être construite à l'exécution.
=INDIRECT(B1) ' B1 contient "Jan!C7" -> renvoie Jan!C7 en direct
=INDIRECT("'"&B1&"'!C7") ' B1 contient un nom de feuille -> le C7 de cette feuille
La plupart des gens rencontrent INDIRECT lorsqu'ils veulent qu'une formule
pointe vers une feuille ou une cellule dont le nom est décidé par une autre
cellule — un tableau de bord qui lit le mois choisi dans une liste déroulante.
Elle fait ça à merveille. C'est aussi l'une des fonctions les plus surutilisées et
mal comprises d'Excel, parce que la caractéristique même qui la rend puissante —
elle travaille sur du texte, pas sur de vraies références — est ce qui la rend
fragile. Ce guide vous donne l'unique modèle mental, les pièges qui en découlent,
et un avis honnête sur les cas où il ne faut pas l'utiliser.
Ce que vous allez apprendre
- Le modèle mental :
INDIRECTest un pont entre une chaîne et une référence vivante - Le piège n°1 : le texte ne se met pas à jour tout seul, si bien que les renommages et insertions se comportent à l'envers
- Pourquoi elle est volatile — et ce que cela coûte sur un gros classeur
- L'usage légitime imbattable : une référence pilotée par le contenu d'une cellule
- Le piège du
#REF!sur classeur fermé et le second argumenta1/L1C1 - Le choix de jugement :
INDIRECTface aux Tableaux, aux références 3D, àCHOISIRet àRECHERCHEX
Remarque — Dans Excel en français, ces fonctions s'affichent sous des noms traduits : INDIRECT → INDIRECT, CHOOSE → CHOISIR, SUMIFS → SOMME.SI.ENS, XLOOKUP → RECHERCHEX, SUM → SOMME, MATCH → EQUIV, ADDRESS → ADRESSE, OFFSET → DECALER. Dans les blocs de code ci-dessous, les noms anglais sont conservés tels quels ; utilisez l'équivalent français dans votre version localisée d'Excel. Les codes d'erreur comme
#REF!restent identiques en français.
Le modèle mental : un pont entre le texte et une référence
Toute référence de formule normale — A1, Sheet2!B3 — est quelque chose
qu'Excel analyse au moment où vous la tapez, puis suit pour toujours ensuite.
INDIRECT coupe cette chronologie en deux. Vous lui passez une chaîne et elle
construit la référence au moment du calcul :
=A1 ' Excel sait dès la saisie que ceci pointe vers A1
=INDIRECT("A1") ' Excel ne voit que le texte "A1" jusqu'au calcul, puis le résout
Les deux renvoient le contenu de A1 à l'instant présent. La différence est le
quand et le comment Excel comprend le lien — et cette différence est la source
de tous les comportements ci-dessous. Gardez cette image en tête : INDIRECT
est un traducteur qui transforme une étiquette en la chose que l'étiquette nomme,
mais seulement au dernier moment.
Le piège qui mord en premier : le texte ne se déplace pas avec votre feuille
Voici le comportement qui surprend tout le monde, et il coupe dans les deux sens.
Parce que INDIRECT("A1") n'est que du texte, la machinerie habituelle d'Excel
qui « garde les références synchronisées » n'y touche pas :
=A1 ' insérez une ligne au-dessus de A1 -> Excel réécrit ceci en =A2 pour vous
=INDIRECT("A1") ' insérez une ligne au-dessus de A1 -> dit TOUJOURS "A1", pointe désormais vers la mauvaise cellule
- Côté fonctionnalité : une référence
INDIRECTest ancrée. Insérez ou supprimez des lignes et elle continue de pointer vers la même adresse — occasionnellement exactement ce que vous voulez (une formule qui doit toujours lire littéralement la celluleA1, quoi qu'il se passe autour). - Côté piège : renommez une feuille de
JanenJanvier, et chaque vraie référence se met à jour automatiquement — mais=INDIRECT("Jan!C7")contient toujours la chaîne"Jan!", qui n'existe plus, si bien qu'elle renvoie#REF!. Supprimez la cellule cible et vous obtenez la même rupture silencieuse. Le lien n'a jamais été réel pour Excel, donc Excel ne peut pas le réparer.
C'est la chose la plus importante à intérioriser : INDIRECT se désolidarise du
suivi des dépendances d'Excel. Le repérage des antécédents ne tracera aucune
flèche vers elle, et un renommage ou une restructuration qu'Excel réparerait
normalement la cassera discrètement à la place.
Pourquoi elle est volatile — et ce que cela coûte
INDIRECT est une fonction volatile. Cela signifie qu'Excel ne peut pas
savoir à l'avance vers quelle cellule le texte se résoudra, si bien qu'il
réévalue INDIRECT (et tout ce qui en dépend) à chaque recalcul — à chaque
modification, n'importe où sur la feuille, pas seulement quand ses entrées
changent. Un seul INDIRECT est gratuit. Une colonne de dix mille d'entre eux
transforme un classeur réactif en un classeur qui se fige une seconde après chaque
frappe.
La règle qui en découle : ne parsemez pas INDIRECT le long d'une longue
colonne par commodité. Si vous vous surprenez à remplir
=INDIRECT("Sheet"&A2&"!B3") sur 5 000 lignes, vous avez construit un problème de
performance. Il existe presque toujours une forme non volatile — un tableau
consolidé, un SUMIFS, une vraie référence 3D — qui donne la même réponse sans
recalculer le monde entier.
Le seul travail pour lequel elle est réellement conçue
Ôtez le mauvais usage et INDIRECT a une vraie maison : quand la cible de la
référence vit dans une cellule sous forme de texte et change à l'exécution.
L'exemple canonique est un tableau de bord piloté par une liste déroulante :
' B1 est une liste déroulante contenant un nom de feuille, ex. "Mars"
=INDIRECT("'"&B1&"'!C7") ' lire C7 de la feuille que B1 nomme
=SUM(INDIRECT("'"&B1&"'!B2:B100")) ' additionner une plage de cette feuille
Encadrer le nom de feuille de guillemets simples ('"&B1&"') est l'habitude qui
vous sauve — elle survit aux noms de feuille contenant des espaces comme
"Q1 Réalisé", qui autrement cassent la chaîne. Ce motif — laisser
l'utilisateur choisir une feuille, et lire depuis elle en direct — est ce que
rien d'autre ne fait aussi proprement, et il vaut la peine d'être bien maîtrisé.
Un second usage, plus discret : convertir une adresse texte en valeur,
généralement associé à ADDRESS ou à la sortie
de MATCH — =INDIRECT(ADDRESS(ligne, col)) lit la cellule que ADDRESS n'a fait
que décrire sous forme de texte.
Deux autres écueils sur lesquels les gens trébuchent
- Les classeurs fermés renvoient
#REF!.INDIRECTne peut résoudre une référence vers un autre classeur que lorsque ce classeur est ouvert. Les vrais liens externes continuent de fonctionner quand la source est fermée ; ceux d'INDIRECT, non. Si vous avez besoin d'un lien qui survit à une source fermée,INDIRECTest le mauvais outil. - Le second argument change le style de référence.
=INDIRECT(réf_texte, [a1])fixea1àTRUEpar défaut (style A1). PassezFALSEet le texte est lu en style L1C1 —=INDIRECT("L2C3", FALSE)signifie ligne 2, colonne 3. La plupart des gens ignorent que cela existe ; c'est occasionnellement pratique quand vous calculez une référence à partir de numéros de ligne et de colonne.
Le choix de jugement : INDIRECT face aux alternatives
L'avis tranché d'abord : la plupart des INDIRECT que vous voyez dans la nature
résolvent un problème qu'un outil non volatile résout mieux. Avant d'y recourir,
vérifiez si l'une de ces options convient :
- Référence qui doit grandir à mesure que des données sont ajoutées → un
Tableau (
Tableau1[Ventes]) ou une référence de déversement (A2#). Les deux s'étendent automatiquement, les deux sont non volatiles, et Excel les suit bien. Cela remplace entièrement les anciennes plages dynamiquesINDIRECT-plus-plage-nommée. - Additionner la même cellule sur plusieurs feuilles → une référence 3D
=SUM(Jan:Dec!B2). Elle survit aux renommages et réordonnancements de feuilles ; l'astuceINDIRECT-sur-une-liste-de-feuilles, non. - Choisir l'une de quelques références connues par indice →
CHOOSEouXLOOKUP.=CHOOSE(n, Jan!B2, Feb!B2, Mar!B2)est non volatile et Excel peut la tracer ;INDIRECTsur une chaîne construite ne peut pas être tracée du tout. - La feuille/cellule cible est réellement nommée dans une cellule et inconnue
jusqu'à l'exécution → c'est le vrai cas d'
INDIRECT. Utilisez-la, mettez vos noms de feuille entre guillemets, et gardez le compte bas.
INDIRECT n'est pas dangereuse — elle est précise. C'est le bon outil exactement
quand une référence doit être calculée à partir de texte au dernier moment, et
le mauvais outil chaque fois qu'un Tableau, une référence 3D ou CHOISIR diraient
la même chose sans se désolidariser du filet de sécurité d'Excel.
Comment ExcelMaster vous aide
Le plus difficile avec INDIRECT, ce n'est jamais la syntaxe — c'est de savoir si
vous devriez seulement l'utiliser, et de mettre le nom de feuille entre guillemets
pour qu'il survive aux espaces. ExcelMaster lit ce que vous cherchez à
construire — une synthèse qui lit le mois sélectionné, ou un total sur tous les
onglets mensuels — et choisit la forme qui convient : une liste déroulante
INDIRECT quand la feuille est vraiment choisie à l'exécution, un SUM 3D ou une
référence de Tableau quand elle ne l'est pas. Vous obtenez le comportement
dynamique sans la formule volatile et intraçable que vous devriez déboguer six
mois plus tard.
Foire aux questions
Pourquoi mon INDIRECT renvoie-t-il #REF! ?
Le texte ne se résout pas en une référence valide. Les causes habituelles : une
feuille a été renommée (la chaîne contient toujours l'ancien nom), la
cellule cible a été supprimée, la référence pointe vers un classeur fermé,
ou la chaîne est simplement mal formée (un ! manquant, un nom de feuille avec
espace non encadré de guillemets). INDIRECT ne peut pas être réparée par Excel
parce que le lien n'est que du texte.
Comment référencer un nom de feuille depuis une cellule avec INDIRECT ?
Mettez le nom de feuille dans une cellule (disons B1) et construisez la référence
sous forme de texte, en encadrant le nom de guillemets :
=INDIRECT("'"&B1&"'!C7"). Les guillemets simples lui permettent de survivre aux
noms de feuille contenant des espaces. C'est le seul travail pour lequel
INDIRECT est réellement la meilleure.
INDIRECT est-elle volatile, et ralentit-elle mon classeur ?
Oui. INDIRECT se recalcule à chaque modification n'importe où dans le classeur,
pas seulement quand ses propres entrées changent. Une poignée ne pose pas de
problème ; des milliers le long d'une colonne rendront la feuille lente. Préférez
une alternative non volatile (référence de Tableau, SUM 3D, INDEX) pour un
usage à grande échelle.
INDIRECT ou DECALER — quelle est la différence ?
Les deux construisent des références dynamiquement et les deux sont volatiles.
OFFSET se déplace d'un nombre fixe de
lignes/colonnes depuis une ancre ; INDIRECT résout une référence à partir d'une
chaîne de texte. Utilisez INDIRECT quand la cible est nommée sous forme de
texte (un nom de feuille dans une cellule) ; utilisez OFFSET quand la cible est
un décalage positionnel par rapport à un point de départ connu.
INDIRECT peut-elle lire depuis un classeur fermé ?
Non. Elle ne résout les références externes que lorsque l'autre classeur est
ouvert — sinon elle renvoie #REF!. Si vous avez besoin d'un lien qui
fonctionne avec la source fermée, utilisez une référence externe normale, pas
INDIRECT.
Testé dans
Testé dans : Excel 365 (Windows 11) — dernière vérification le 2026-07-01.
Guides associés : Excel OFFSET · Excel ADDRESS · Excel XLOOKUP · Excel FILTER · Excel IFERROR
