colimacon

La fonction INDIRECT

05/08/2014

Fonction indirect - image 1

La fonction INDIRECT vous permet de faire varier le nom d’un onglet dans une formule. Ainsi, si dans un tableau vous voulez faire référence à la cellule « A1 » de chaque feuille de votre classeur, vous n’êtes pas obligé d’introduire chaque référence par un lien directe : il suffit de créer votre formule pour une des références et de l’étirer. Grâce à la fonction INDIRECT, le nom d’un onglet devient dynamique !

Notre objectif dans ce post sera ainsi de vous montrer comment récupérer dans un onglet (« Conso ») des références situées dans plusieurs onglets différents (ici UK SAS, DN SAS etc.) par une formule « étirable ».

Fonction indirect - image 2

La formule et son optimisation

Cas 0

Dans notre exemple nous souhaitons récupérer les WACC des différentes filiales et de l’onglet global, sans devoir créer un lien direct faisant référence à chaque onglet.

Nous allons donc utiliser la fonction INDIRECT pour nous sortir de ce mauvais pas :

Renseignons dans la cellule B2 la formule =INDIRECT(« Global!B1 »)

Fonction indirect - image 3

Nous obtenons alors bien le taux recherché.

Cependant réécrire le nom de la filiale présente deux inconvénients majeurs :

Cas 1

Pour lever le 1er point  nous pouvons faire référence à la cellule A2 directement, en utilisant l’opérateur & qui permet de réaliser, en excel et vba, une concaténation. Comme A2 est une cellule active on ne lui met pas de guillemets, en revanche on ajoute un point d’exclamation pour qu’Excel comprenne qu’il s’agit d’un onglet.

On tape alors : = INDIRECT(A2& « !B1 »)

Fonction indirect - image 4

On obtient une référence dynamique au contenu de la cellule A2, ce qui est déjà nettement mieux !

Fonction indirect - image 5

Néanmoins cette méthode ne fonctionne pas lorsque notre filiale (et donc indirectement notre nom d’onglet) comporte des espaces, comme dans notre cas. On obtient alors, comme pour le cas 0 l’erreur #REF !

Pour lever ce second désagrément, il nous faut donc réaliser une dernière subtilité !

Cas 2

Pour lever le second problème, il va nous falloir recourir à des guillemets simples ‘, comme le fait d’ailleurs Excel lui-même lorsqu’il nomme les onglets.

En plaçant ces guillemets simples entre guillemets doubles (car INDIRECT prend en argument un texte) et en les concaténant on obtient alors la solution au problème en tapant :

= INDIRECT(« ‘ »&A3& « ‘!B1 »)

Fonction indirect - image 6