ESTREF (ISREF en anglais) est la sentinelle des références : elle retourne VRAI si son argument est une référence de cellule ou de plage, FAUX dans tous les autres cas (nombre, texte, valeur logique, erreur). Simple en apparence, elle devient indispensable dès que tu construis des formules dynamiques avec INDIRECT.
C'est elle qui permet de valider une adresse saisie par un utilisateur avant d'en tirer une valeur, de sécuriser les outils Excel complexes contre des entrées incorrectes, ou d'adapter automatiquement le traitement selon que l'argument reçu est une référence réelle ou une valeur brute.
Syntaxe de la fonction ESTREF
=ESTREF(valeur)Comprendre chaque paramètre de la fonction ESTREF
valeur
: la valeur à testerIl peut s'agir d'une référence directe comme A1, d'une plage comme B2:D10, d'un nom défini pointant vers des cellules, ou d'une expression qui retourne une référence comme INDIRECT("A1").
ESTREF retourne VRAI uniquement si l'argument est (ou se résout en) une référence de cellule. Ainsi, =ESTREF(A1) retourne VRAI, mais =ESTREF("A1") retourne FAUX car la chaîne entre guillemets est du texte, pas une référence.
Astuce : Pour tester si une adresse textuelle est une référence valide, combine avec INDIRECT : =ESTREF(INDIRECT(A1)). INDIRECT convertit d'abord le texte en référence, puis ESTREF évalue si c'est valide.
Attention : N'entoure pas l'argument de guillemets si tu veux tester une vraie référence. =ESTREF("A1") retourne toujours FAUX car les guillemets transforment A1 en texte.
Pas envie d'écrire la formule ESTREF à la main ?
Génère-la avec notre IAExemples pratiques pas à pas
Développeur Excel : valider des références saisies par l'utilisateur
Tu crées un outil Excel où les utilisateurs saisissent des adresses de cellules dans un formulaire. Avant d'utiliser ces adresses dans des calculs, tu veux vérifier qu'elles pointent bien vers quelque chose de valide.
| A | B | C | |
|---|---|---|---|
| 1 | Adresse saisie | Est valide ? | Statut |
| 2 | A1 | VRAI | Référence valide |
| 3 | B5:C10 | VRAI | Plage valide |
| 4 | XYZ999 | FAUX | Invalide |
| 5 | Total_Ventes | VRAI | Nom défini valide |
=SI(ESTREF(INDIRECT(A2)); "Référence valide"; "Invalide")La combinaison ESTREF(INDIRECT(A2)) fonctionne en deux temps : INDIRECT convertit le texte contenu en A2 (par exemple "B5:C10") en vraie référence Excel, puis ESTREF vérifie si le résultat est une référence valide. Si l'utilisateur a tapé XYZ999 (une adresse qui n'existe pas), INDIRECT retourne une erreur #REF! et ESTREF retourne FAUX, ce qui permet d'afficher un message clair plutôt qu'une erreur brute.
Auditeur financier : cartographier les dépendances d'un fichier
Tu analyses un classeur Excel complexe et tu veux repérer quelles cellules dépendent d'autres cellules pour identifier les risques de propagation d'erreurs. ESTREF te permet de vérifier, colonne par colonne, si une cellule est une valeur autonome ou une formule qui pointe vers d'autres données.
| A | B | C | |
|---|---|---|---|
| 1 | Cellule | Contenu | Contient une référence ? |
| 2 | A1 | 100 | FAUX |
| 3 | A2 | =A1*2 | VRAI |
| 4 | A3 | "Texte" | FAUX |
| 5 | A4 | =SOMME(A1:A3) | VRAI |
=ESTREF(A2)Dans cet exemple, A1 et A3 contiennent des valeurs directes (ESTREF retourne FAUX), tandis que A2 et A4 contiennent des formules qui référencent d'autres cellules (ESTREF retourne VRAI). C'est une base pour documenter automatiquement la structure de tes classeurs.
Formateur Excel : créer un exercice de correction automatique
Tu prépares un exercice où les apprenants doivent identifier le type d'une expression Excel. ESTREF sert ici à la correction automatique : la formule vérifie à la fois si l'expression est réellement une référence ET si l'apprenant a répondu "Référence".
| A | B | C | |
|---|---|---|---|
| 1 | Expression | Réponse apprenant | Correction |
| 2 | A1 | Référence | Correct |
| 3 | 123 | Nombre | Correct |
| 4 | "Texte" | Référence | Faux : c'est du texte |
| 5 | B2:C5 | Plage | Correct |
=SI(ET(ESTREF(A2); B2="Référence"); "Correct"; "Faux")Ce système rend l'exercice interactif et instantané. Tu peux l'étendre avec d'autres fonctions EST* (ESTNUM, ESTTEXTE, etc.) pour créer un quiz complet sur les types de données Excel.
Gestionnaire de données : router dynamiquement des formules
Tu construis un tableau de bord dynamique où certains paramètres peuvent être soit des références de cellules (pour lire les valeurs en temps réel), soit des valeurs fixes. ESTREF te permet d'adapter le traitement automatiquement.
| A | B | C | |
|---|---|---|---|
| 1 | Source | Type détecté | Action appliquée |
| 2 | A1 | Référence | Lire la valeur de A1 |
| 3 | 500 | Valeur directe | Utiliser 500 directement |
| 4 | B5:B10 | Plage | Sommer la plage |
| 5 | "Montant" | Texte | Afficher le texte |
=SI(ESTREF(A2); "Lire la valeur de " & ADRESSE(LIGNE(A2); COLONNE(A2)); "Utiliser la valeur directe")La formule détecte si l'argument est une référence, puis adapte le calcul en conséquence. Cela rend ton outil flexible : un utilisateur peut saisir D5 pour pointer vers une cellule du tableau, ou directement 1000 pour une valeur fixe, et la formule gère les deux cas sans erreur.
Envie de t'entraîner sur de vrais exercices Excel ?
M'entraînerLes erreurs fréquentes avec la fonction ESTREF
Le réflexe qui fait trébucher avec ESTREF, c'est de mettre la référence entre guillemets : =ESTREF("A1") renvoie FAUX parce que tu testes alors la chaîne de texte A1 et non la cellule. Si ton adresse arrive sous forme de texte dans une cellule, passe-la d'abord à INDIRECT.
Les deux autres pièges sont plus subtils : un nom défini limité à une autre feuille qu'ESTREF ne reconnaît pas, et la confusion avec ESTNUM (qui teste si c'est un nombre) ou TYPE (qui renvoie un code de type), qui ne répondent pas du tout à la même question.
ESTREF retourne toujours FAUX même pour des références visibles
L'argument est entouré de guillemets, ce qui le transforme en texte. =ESTREF("A1") teste la chaîne A1, pas la cellule A1. Une chaîne de caractères n'est jamais une référence.
Solution : Retire les guillemets : =ESTREF(A1) retourne VRAI. Si l'adresse est stockée sous forme de texte dans une cellule, passe-la d'abord à INDIRECT : =ESTREF(INDIRECT(A1)).
Confusion entre ESTREF, ESTNUM et TYPE
Ces trois fonctions testent des choses différentes. ESTREF teste uniquement si c'est une référence de cellule. ESTNUM teste si c'est un nombre. TYPE retourne un code (1=nombre, 2=texte, 4=logique, 16=erreur, 64=tableau).
Solution : Utilise ESTREF quand tu veux savoir si ton argument est une cellule ou une plage. Utilise ESTNUM pour vérifier si une valeur est numérique. Utilise TYPE si tu as besoin du type exact de données.
ESTREF retourne FAUX pour un nom défini valide
Le nom défini n'est pas reconnu, soit parce qu'il est mal orthographié, soit parce qu'il n'existe pas dans le classeur courant, soit parce que la portée du nom est limitée à une autre feuille.
Solution : Vérifie le nom dans Formules → Gestionnaire de noms. Assure-toi que la portée (Classeur vs Feuille) est correcte. Les noms définis au niveau feuille ne sont accessibles que depuis cette feuille.
ESTREF vs INDIRECT vs ESTNUM vs TYPE
Sors ESTREF uniquement quand ta question est « est-ce que cet argument est une cellule ou une plage ? », typiquement pour valider une référence dynamique avant de l'exploiter. Si tu veux fabriquer une référence à partir d'un texte, c'est INDIRECT ; pour vérifier qu'une saisie est numérique, c'est ESTNUM.
TYPE va plus loin en renvoyant un code chiffré (1 pour un nombre, 2 pour du texte, 16 pour une erreur…) : prends-la quand le simple VRAI/FAUX d'ESTREF ne suffit pas et que tu as besoin de connaître le type exact.
| Critère | ESTREF | INDIRECT | ESTNUM | TYPE |
|---|---|---|---|---|
| Objectif | Tester si référence | Créer une référence depuis du texte | Tester si nombre | Identifier le type exact |
| Résultat | VRAI / FAUX | Référence ou #REF! | VRAI / FAUX | Code numérique (1, 2, 4…) |
| Cas d'usage typique | Valider une référence dynamique | Construire une référence depuis une cellule | Valider une saisie numérique | Détecter le type de données |
| Fréquence | Rare (cas avancés) | Occasionnelle | Occasionnelle | Rare |
| Compatibilité | Toutes versions | Toutes versions | Toutes versions | Toutes versions |
Astuces avancées avec ESTREF
Valide les références dynamiques avec SIERREUR + ESTREF
Pour créer une validation robuste, combine les deux niveaux de sécurité : =SIERREUR(SI(ESTREF(INDIRECT(A1)); INDIRECT(A1); "Référence invalide"); "Erreur de syntaxe"). ESTREF intercepte les adresses hors limites, SIERREUR gère les erreurs de syntaxe qu'INDIRECT peut générer sur une chaîne vide ou malformée.
Tu couvres ainsi tous les cas d'erreur possibles avec une seule formule.
Combine ESTREF et ADRESSE pour documenter tes dépendances
Pour créer un système de documentation automatique, =SI(ESTREF(A1); "Pointe vers " & ADRESSE(LIGNE(A1); COLONNE(A1)); "Valeur autonome") signale quelles cellules dépendent d'autres cellules et lesquelles portent des valeurs indépendantes.
C'est un outil d'audit léger, sans macro, qui fonctionne dans n'importe quelle version d'Excel.
Questions fréquentes sur la fonction ESTREF
Quelle différence entre ESTREF et TYPE ?
TYPE retourne un code numérique indiquant le type de données : 1 pour un nombre, 2 pour du texte, 4 pour une valeur logique, 16 pour une erreur, 64 pour un tableau. ESTREF retourne simplement VRAI ou FAUX selon que l'argument est une référence de cellule ou non.
Dans la pratique, TYPE teste la valeur contenue dans la cellule, tandis qu'ESTREF teste la nature de l'argument lui-même.
ESTREF peut-elle détecter une plage de cellules ?
Oui. ESTREF retourne VRAI aussi bien pour une cellule unique (A1) que pour une plage (A1:B5) ou un nom défini pointant vers une plage. Tout ce qui fait référence à des cellules est considéré comme une référence valide.
En revanche, une valeur scalaire comme un nombre ou du texte retourne FAUX, même si cette valeur provient d'une formule.
Pourquoi ESTREF est-elle considérée comme une fonction avancée ?
Parce qu'elle est rarement utile dans les formules du quotidien. La quasi-totalité des cas d'usage d'Excel ne nécessitent jamais de savoir si un argument est une référence : Excel le gère silencieusement.
ESTREF devient nécessaire dans les outils complexes : validation des entrées utilisateur, formules dynamiques avec INDIRECT, macros VBA qui acceptent soit des plages soit des valeurs directes. C'est une fonction de développeur Excel.
ESTREF fonctionne-t-elle avec les références externes ?
Oui. ESTREF retourne VRAI pour les références externes comme [Classeur.xlsx]Feuil1!A1 ou les références 3D comme Feuil1:Feuil3!A1, tant que la référence est syntaxiquement valide et que le classeur externe est ouvert.
Si le classeur externe est fermé, INDIRECT ne peut pas résoudre la référence et retourne #REF!, donc ESTREF retourne FAUX.
Comment utiliser ESTREF pour valider une entrée INDIRECT ?
Combine les deux fonctions : =SI(ESTREF(INDIRECT(A1)); INDIRECT(A1); "Référence invalide"). Si A1 contient l'adresse valide B5, la formule retourne la valeur de B5. Si A1 contient ZZZZZ999 (adresse impossible), INDIRECT retourne #REF!, ESTREF retourne FAUX, et tu affiches ton message personnalisé.
Pour une sécurité maximale, ajoute SIERREUR en wrapper extérieur pour gérer les cas où A1 est vide ou contient du texte non analysable par INDIRECT.
ESTREF est-elle utile dans VBA ?
Dans VBA, ESTREF est moins utile car tu peux tester directement si une variable est de type Range avec TypeOf variable Is Range. En revanche, dans une Function VBA qui appelle des formules worksheet, tu peux utiliser Application.WorksheetFunction.IsRef() pour vérifier la nature d'un argument.
Pour des fonctions VBA personnalisées qui acceptent soit une plage soit une valeur, le test TypeOf est plus direct et plus lisible que de passer par ESTREF.
Pour aller plus loin
Bloqué sur une formule Excel ?
Pose ta question à notre assistant Excel IA, il te sort la bonne formule en quelques secondes.
Essayer l'assistant IAGratuit · 10 questions par mois

