Comment afficher une image différente en fonction de la valeur d’une cellule Excel (sans VBA) ?
Dans ce tutoriel, je vais vous montrer comment il est possible d’afficher une image dans une cellule qui va directement dépendre d’une valeur saisie dans une autre cellule, sans utiliser VBA. La finalité de ce tutoriel sera ainsi de sélectionner l’image à afficher à partir d’un menu déroulant !
Téléchargement
Vous pouvez télécharger le fichier d'exemple de cet article en cliquant sur le lien suivant :
Tutoriel Vidéo
1. Introduction
Comme nous venons de le voir dans l'introduction de cette vidéo, nous allons maintenant voir comment faire en sorte d'afficher une image en fonction de la valeur que nous allons faire apparaître dans une cellule, via un menu déroulant.
Tout d'abord, le premier élément que nous allons devoir disposer pour mettre en place un tel outil est un tableau dans lequel nous retrouvons chaque image ordonnée au sein de cellules avec le nom que nous voulons donner à celles-ci.
Pour illustrer ce tutoriel, nous retrouvons par exemple une liste de pays avec les drapeaux de chacun d’entre eux :
Ensuite dans la feuille de calcul principale, nous allons mettre en place un menu déroulant en cellule A7 dans lequel nous viendrons sélectionner le nom du pays et nous souhaiterons que l'image correspondant à celui-ci s'affiche automatiquement dans la cellule B7.
2. Comment créer un menu déroulant
Pour mettre en place un menu déroulant, nous allons pouvoir utiliser une méthode que nous avons découverte dans un tutoriel dédié, et qui consiste à utiliser une validation de données.
Pour cela, nous commençons par sélectionner la cellule A7, puis nous nous rendons dans le menu « Données » afin de dérouler le menu « Validation de données »et nous cliquons sur le deuxième bouton « Validation données » :
Ensuite, nous choisissons de mettre en place une validation reposant sur une liste de cellules.
Dans le champ « Source », nous allons tout simplement aller sélectionner les cellules qui correspondent aux noms des pays :
Si nous le souhaitons, pour simplifier encore la création de ce menu déroulant, nous pouvons revenir sur la feuille « Liste des pays », sélectionner les cellules de la colonne « Nom de pays » et leur attribuer une plage nommée en venant tout simplement saisir son nom (« listePays ») dans la zone des noms que nous retrouvons en haut à gauche de l'interface d’Excel :
Ensuite, nous validons en appuyant sur la touche [Entrée].
De cette manière, nous pouvons revenir dans la cellule sur laquelle nous voulons insérer le menu déroulant, afficher à nouveau la fenêtre de paramétrage de la validation de données et dans la zone de sélection des cellules, il suffira de taper « =listePays ».
Pour simplifier l’appel de la plage des cellules nommées, nous pouvons appuyer sur la touche [F3] afin qu’Excel nous affiche la liste des plages nommées du classeur et il nous suffira ensuite de double cliquer sur le nom listePays :
Ensuite, nous validons en appuyant sur [OK] et maintenant Excel, nous affiche automatiquement un menu déroulant qui va nous permettre de sélectionnez l'un des pays parmi la liste de ceux figurant dans le tableau :
3. Récupérer l’image correspondante au pays sélectionné
Maintenant que notre menu déroulant est créé, nous allons vouloir récupérer la photo du pays correspondant.
Pour cela, nous allons devoir créer une nouvelle plage nommée.
Sauf que celle-ci ne va pas permettre de rediriger directement vers une plage de cellules donnée. À la place, nous allons y insérer une formule qui va permettre de sélectionner la cellule qui correspond à la photo du pays saisi en cellule A7.
Pour créer ce nom de cellule, nous nous rendons dans le menu « Formules », puis nous cliquons sur « Définir un nom » :
Dans la fenêtre qui apparaît, nous allons tout d'abord donner le nom à créer, par exemple « photo ».
Ensuite, comme nous venons de le voir, nous n'allons pas venir sélectionner directement une ou plusieurs cellules à affecter à ce nom, mais à la place nous allons saisir la formule suivante :
=DECALER('Liste des pays'!$B$8;EQUIV(excelformation.fr!$A$7;'Liste des pays'!$A$9:$A$12;0);0)
Cette formule repose sur l'utilisation de la fonction Excel DECALER().
Celle-ci permet d'extraire une cellule en effectuant, comme son nom l'indique, un décalage exprimé en nombre de lignes et de colonnes, en partant d'une cellule de départ.
Cette cellule est la cellule B8 de la feuille « Liste de pays » dans laquelle se trouve l'en-tête de la colonne avec les drapeaux.
Ensuite pour déterminer de combien de cellules nous allons devoir effectuer ce décalage vers le bas, nous allons utiliser la fonction EQUIV(), que nous avons plutôt l'habitude d'utiliser en binôme avec la fonction INDEX().
Cette fonction EQUIV() permet de récupérer la position d'une cellule donnée au sein d'une plage de cellules, en fonction de sa valeur de recherche.
Ici la valeur que nous allons souhaiter rechercher est celle qui se trouve sélectionnée par l'utilisateur dans le menu déroulant de la cellule A7, que nous venons appeler avec une référence absolue.
Et la recherche doit s'effectuer au sein de toute la liste des pays, c'est-à-dire la plage de cellules B9 à B12 de la feuille « Liste des pays ».
Enfin, nous saisissons le 3e argument de la fonction EQUIV(), qui permet d'effectuer une recherche exacte afin de ne pas avoir une photo qui correspondrait à un autre pays.
Alors attention, nous y reviendrons tout à l'heure, mais si à ce moment-là nous saisissons un pays qui n'appartient pas à notre base de données, Excel nous affichera une image erronée.
C'est pourquoi l'utilisation du menu déroulant tel que nous l'avons prévu tout à l'heure permettra de passer outre cette limitation.
Pour finir sur cette formule, nous allons revenir sur la fonction DECALER(), qui nécessite que nous spécifiions également le décalage à opérer, en termes de colonnes.
Ici, nous voulons rester sur la même colonne, nous donnons donc « 0 ».
Il ne reste plus qu’à valider en appuyant sur le bouton [OK].
Donc ici, Excel nous a bien insérer le nom que nous pouvons trouver dans le gestionnaire des noms :
Nous allons maintenant pouvoir l’exploiter.
Pour cela, nous allons copier l'une des cellules dans lequel se trouvent les images, par exemple la cellule B9 :
Puis nous allons revenir sur la feuille de calcul principale afin de la coller dans la cellule B7.
Mais nous n'allons pas vouloir effectuer un collage traditionnel. À la place, nous allons dérouler le menu de collage afin de retrouver les différents types de collages spéciaux et nous allons insérer un collage de type « Images liée » :
De cette manière, lorsque nous sélectionnons cette image, nous retrouvons dans la barre de formule la référence à la cellule qui a été collée avec la liaison (la cellule B9) :
À la place de ces coordonnées, nous allons tout simplement venir saisir le nom que nous avons créé juste avant, à savoir « photo » :
À ce moment-là, il nous suffira de valider, en appuyant sur la touche [Entrer] et maintenant nous voyons bien apparaître la photo qui correspond au pays sélectionné.
Nous pouvons sélectionner un autre pays pour que la photo s'adapte automatiquement :
Alors attention, comme nous l'avons vu tout à l'heure, il est indispensable pour que cela fonctionne et qu’Excel, ne génère pas d'erreur de formule, c’est-à-dire que le pays sélectionné doit forcément figurer dans la liste des pays avec un drapeau.
Pour nous en rendre compte, nous allons sélectionner à nouveau la cellule A7, puis revenir dans le menu Données > Validation de données.
Ensuite, nous allons nous rendre dans l'onglet « Alerte d’erreur » afin de décocher l'option « Quand des données non valides sont tapées ».
Ce que nous venons de faire, va nous permettre de pouvoir saisir une valeur qui n'appartient pas à la liste source, par exemple « Japon » :
Excel va bien valider la saisie dans la cellule, en revanche, comme vous pouvez le constater, le drapeau reste inchangé.