Afficher une image en fonction de la valeur d’une cellule Excel

Comment afficher une image différente pour chaque valeur d’une cellule Excel ?

Afficher une image en fonction de la valeur d’une cellule Excel

Il vous faut trois colonnes :

– dans la première : une liste des titres des différentes photos (ex. : Plage, Coucher de soleil, Zen).

– dans la troisième : les images correspondantes aux titres, attention les lignes et colonnes doivent être assez grandes pour contenir les images.

– dans la deuxième (la plus compliquée) : les références des cellules où se trouvent les images. De la manière suivante : Nomdelonglet!numerocolonnenumeroligne. C’est à dire si vous avez votre premier nom d’image en D44, l’image se trouve en F44 et en E44 vous entrez Nomdelonglet!F44.

En image :

Image en fonction d'une valeur de cellule

Il vous faut aussi une cellule où l’on pourra choisir le nom de l’image à afficher. Cliquez sur cette cellule (B40 dans mon cas). Puis « Données », « Validation des données », dans « Autoriser » choisir « Liste » puis dans source choisir les cellules qui contiennent les titres des photos :

Validation des données

Puis rendez-vous dans « Formules », « Définir un nom » : dans la ligne « Nom » vous pouvez entrer « affichage » et dans la ligne « Fait référence à », entrez la formule suivante :

=INDIRECT(RECHERCHEV(Nomdelonglet!$B$40;Nomdelonglet!$D$44:$E$46;2;0))

Quelques détails : Nomdelonglet!$B$40 correspond à la cellule où l’on peut choisir le titre de l’image.

Nomdelonglet!$D$44:$E$46 correspond à la plage de cellules qui contient les titres des différentes images et leurs localisations (première et deuxième colonnes). Il faut bien veiller à ne pas sélectionner la troisième colonne avec les images !

Puis pour ceux qui n’ont pas « Appareil photo » dans le menu : rendez-vous dans « Fichier », « Options », « Personnaliser le ruban », puis « Commandes non présentes sur le ruban », cliquez sur « Appareil photo » puis « Ajouter » et enfin « OK ».

Sinon ou ensuite cliquez sur une des images de la liste puis Appareil Photo. Dessiner alors la zone où vous souhaitez que votre image conditionnelle s’affiche et dans la barre de formule entrez « =affichage ».

Image conditionnelle Excel

Ca y est ! Si vous modifiez le titre de l’image dans votre liste déroulante vous verrez que l’image change en fonction de la valeur de la cellule.

Le classeur pour ceux qui veulent le détail où pour qui tout ça ne fonctionnerait pas :

image-suivant-valeur-cellule-excel (pensez à faire « Activer la modification » quand vous aurez téléchargé le fichier)

Les explications sur les formules permettant d’afficher une image en fonction de la valeur d’une cellule Excel

La première chose est d’avoir une liste déroulante pour le choix du titre de l’image (la flèche qui permet de choisir ce que l’on souhaite).

Ensuite dans le gestionnaire de noms : la fonction RECHERCHEV permet de chercher le texte sélectionné dans une liste et d’afficher le texte d’une colonne suivant ce texte. Mais cette fonction ne permet pas de chercher une image : on va donc chercher la référence de la cellule contenant l’image. Puis la fonction INDIRECT permet « d’aller voir » ce qui se trouve dans la cellule contenant les images.

L’appareil photo permet ensuite de créer une zone où l’on va appeler la fonction qu’on a créée précédemment. Ainsi lors du changement dans la liste déroulante, la fonction va chercher l’image correspondante.

54 commentaires

  1. Bonjour,

    Super, je cherchais cela depuis un petit moment ; et les différentes versions que j’avais trouvées étaient lourdes et bancales à utiliser.
    Si je peux me permettre, à la place de : « Sinon ou ensuite cliquez sur une des images de la liste puis Appareil Photo », je mettrais plutôt « Sinon ou ensuite cliquez sur une des cellules contenant une des images de la liste puis Appareil Photo »

    Encore MERCI.

    1. Bonjour,

      J’ai un problème à l’étape »Sinon ou ensuite cliquez sur une des images de la liste puis Appareil Photo. Dessiner alors la zone où vous souhaitez que votre image conditionnelle s’affiche et dans la barre de formule entrez « =affichage ».
      Quand je nomme =image dans mon cas j’ai un message d’erreur qui me dit « référence non valide », pouvez-vous m’aider ?

      Je vous remercies d’avance.

      D’hose, John.

        1. Bonjour M.Tellier

          Je me permet de relancer ce commentaire, en effet j’ai suivi votre procédure en réutilisant les mêmes termes. Et pourtant cela ne fonctionne pas, je suis dans le même cas que John avec le fameux « référence non valide » au moment de remplacer la valeur par défaut par « =affichage ».
          Serais-ce peut-être un problème de version ? Je suis sous Excel 2016
          Cordialement,

          1. Bonjour,

            merci pour votre message. Je viens de réessayer sous Excel 2016 et cela fonctionne donc apparemment le problème ne vient pas de la version. Est-ce que le fichier de base téléchargeable dans l’article fonctionne chez vous ?

            Si oui avez-vous bien choisi le nom correspondant à ce que vous souhaitiez entrer dans les références ?

            Cordialement,
            Jérémy Tellier.

  2. Bonjour,
    Merci pour ces explications très claires.
    J’aimerai pouvoir utiliser la formule « =INDIRECT(RECHERCHEV(Nomdelonglet!$B$40;Nomdelonglet!$D$44:$E$46;2;0)) » dans différentes cellules, mais j’aimerai que la valeur recherchée soit toujours celle de la cellule au-dessus de la cellule où je colle la formule car j’ai besoin de copier cette formule dans 200 celulles différentes. C’est à dire si je colle la formule en C12, j’aimerai que ma rechercheV se fasse sur la valeur de la cellule C11, si je la colle en D12 je recherche la valeur de la cellule D11 et ainsi de suite…
    Si vous avez le temps et une solution à me proposer, vous me rendriez un grand service !
    Dans tous les cas, merci pour votre travail 🙂

    1. Bonjour,

      merci pour votre message. Je ne suis pas sûr d’avoir bien saisi votre demande. Si je comprends ce serait ça :

      Et il faut bien retirer les $ (F4 plusieurs fois) qui verrouillent la cellule valeur_cherchée. Ensuite en copiant-collant la référence de la cellule cherchée est automatiquement changée par celle juste au-dessus d’où a été fait le copier-coller.

      Je reste à votre disposition si ce n’était pas exactement la question (peut-être serait-ce plus simple avec le fichier en question ou une partie de celui-ci s’il n’est pas confidentiel).

      Bonne journée !

      1. Merci beaucoup pour votre rapide retour. J’ai bien essayé de retirer les $ mais j’obtiens ensuite le message « référence invalide ».
        Si ça ne vous dérange pas, je vous envoie avec plaisir un extrait de mon fichier. Où dois-je l’envoyer ?

          1. Bonjour, et merci pour votre aide. J’ai exactement le même souci. Pouvez-vous m’aider?

            Cordialement

  3. Bonjour,
    Votre sujet m’intéresse énormément mais j’ai un souci de taille.
    J’ai un tableau ou je crée des assemblés d’outils nommés « T1, T2, T3, etc…).
    Pour chaque assemblé, j’ai de un à plus de 5 éléments et pour chacun d’entre eux je mets leur photo.

    Il me faudrait donc créer autant de nom dans le gestionnaire de nom que j’ai d’élément qui compose chaque outil.

    J’ai essayé de créer une fonction mais ça ne marche pas, j’ai un message d’erreur.
    Auriez-vous une solution à mon problème.
    Merci
    Cordialement

    1. Bonjour,

      merci pour votre message. Suite à quasiment la même question d’une autre personne je n’ai pas pour ma part de solution à ce problème. Il faut apparemment ajouter manuellement chaque nom dans le gestionnaire. Si toutefois vous aviez une solution nous sommes preneurs !

      Bonne journée, cordialement,
      Jérémy Tellier.

  4. Bonjour,

    J’ai créé un classeur avec 3 tableaux à images dynamiques, au total une centaine d’images en .jpg qui se retrouvent dans un 2eme tableau qui lui même est la source du troisième tableau final…
    Tout fonctionne, mais mes images se « dégradent » aprés la première utilisation de l’image, est-ce normal et comment y remédier?

      1. Bonjour,

        c’est des dessins réalisés sur autocad donc DWG convertit en JPG pour le tableau excel (il s’agit d’un projet professionnel)
        ce sont des dessins très succins seulement quelques traits et les images sources que j’ai inséré dans le premier tableau s’effacent littéralement au fur et à mesure de leur utilisation, je ne comprend vraiment pas d’ou vient le problème.. (je ne trouve pas comment inserer d’images pour vous montrer le résultat)

        1. Bonjour,

          d’accord pour les images (les commentaires n’acceptent pas d’images pour le moment, il faut les stocker et faire un lien vers un site tiers comme http://www.hostingpics.net/).

          Je ne vois pas bien d’où peut venir votre problème non plus. Peut-être serait-ce plus facile avec un extrait du fichier (mais le travail est peut-être confidentiel ?). Dans tous les cas je n’ai jamais entendu parler de ce genre de souci…

          Cordialement,
          Jérémy Tellier.

  5. Tout d’abord merci pour votre temps, je pense avoir trouvé une solution (sans expliquer le problème) mais je suis passé en .gif et mes images semblent stables, les mauvaises étant supprimées je ne peux plus vous les montrer.
    le fichier est assez lourd et avec ÉNORMÉMENT de formules dans tout les sens, je pense que ça pouvait etre une cause..?
    je peux effectivement vous envoyé une copie du fichier en supprimant les données « sensibles » , ca donnerait également l’occasion d’avoir l’avis d’un expert sur mon petit travail qui m’a pris bcp de tps et d’énergie!

    1. Bonjour,

      de rien. Intéressant que cela fonctionne en gif. Effectivement si le fichier est lourd cela peut poser des problèmes pour la mise à jour des formules et donc peut-être des images, il aurait fallu essayer d’imprimer en fait pour voir si les images étaient « normales ». Si vous le souhaitez vous pouvez me faire parvenir votre fichier effectivement à jeremytellier@partiprof.fr. Je vous donnerai mon « humble » avis !

      1. Merci je vous l’envoie avec plaisir! (Avec ma boite mail pro donc vérifiez vos indésirables je suis souvent classé dedans..)
        pour vous répondre, l’impression était fidèle à l’affichage à l’écran, j’ai trouvé la solution du gif en faisant l’essai avec des images prises sur google image qui sont apparues stables à l’utilisation et en observant les propriétés c’était du gif donc j’ai changé mes images dans ce sens ..

  6. Hello ! Après maintes recherche, merci pour ces explications très bien détaillées ! Juste une petite remarque parce que du coup je me suis prise la tête pas mal de temps : il faut que le tableau soit sur le même onglet que la case où l’on veut afficher l’image sinon ça ne fonctionne pas… 🙂 A+

    1. Bonjour Alexia,

      Je n’ai peut-être pas bien compris votre remarque, mais pour ma part, j’ai le tableau dans un onglet, et la formule est sur une cellule dans un autre onglet, et cela fonctionne correctement 🙂
      Il faut bien veiller à ce que le nom de l’onglet en question soit correctement écrit dans le nom de l’onglet, dans la case où il se retrouve et dans la formule créée, en prenant bien en compte des espaces, des accents etc…
      Ca a fonctionné de mon côté, je ne vois pas de raisons pour que ça ne fonctionne pas pour vous 🙂

      Cordialement,
      E.

  7. Bonjour,

    Merci beaucoup pour votre tuto.
    En revanche, j’ai une photo de base qui s’affiche dans mon fichier.
    Je souhaite du vide tant qu’aucune valeur n’est sélectionnée en B16.
    Est-ce possible ?

    Merci d’avance.

    1. Re-bonjour,

      effectivement, après vérification, il faut ajouter une ligne dans la liste contenant les noms des photos avec les images, choisir une ligne vide et ne pas mettre d’image dans la ligne vide. Il n’y a alors aucune image qui s’affiche si rien n’est sélectionné dans la liste déroulante.

  8. Bonjour,
    Merci beaucoup pour cette formule qui correspond exactement à ce que je cherche.
    J’ai utilisé le fichier téléchargé et j’ai un problème de présentation :
    les photos de la colonne F ne sont pas encadrées et pourtant la photo de résultat en D40 a un encadré qui me gène dans la mise en page finale. J’ai retiré plusieurs fois les bordures et les traits en D40 mais pas moyen de faire disparaitre ce carré.
    Pourriez-vous m’aider à afficher exactement l’image de départ ?
    Merci beaucoup

    1. Bonjour,

      de rien et merci pour votre message. En fait l’encadré est celui correspondant à une image d’appareil photo, mais il n’apparaît pas à l’impression. Il permet de repérer que l’appareil photo a été utilisé. Pourquoi devez-vous l »enlever ? Nous trouverons peut-être une solution « de substitution ».

      Bonne journée !

      1. Je dois l’utiliser pour afficher un logo. Sur mon document, selon un critère c’est soit le logo A soit le logo B. Sauf que ce logo « adaptable » vient à la suite d’autres logos fixes sans carré autour. Ca ne fait pas très joli du coup.
        Je n’ai pas contrôlé l’impression mais en PDF le carré se voit comme sur l’Excel et mon document est envoyé en PDF.
        Si vous avez une idée de solution « de substitution » je suis preneuse.
        Merci beaucoup pour votre aide, bonne journée à vous!!

          1. J’utilise Excel 2017, mais je suis sur Mac, vous pensez que c’est à cause de ça ?
            Mettre mettre en PDF je fais, « imprimer – enregistrer en PDF ».

  9. Bonjour Christelle,

    désolé pour le délai de réponse. C’est une possibilité comme le fonctionnement est différent… Pouvez-vous essayer avec une imprimante PDF type « Foxit Reader PDF Printer », afin de voir le résultat ?

    1. Bonjour Jérémy,

      C’est déjà très gentil de passer du temps sur ma question, même si vous répondez plus tard.
      Je ne pense pas que cela fonctionne car même en imprimant l’excel directement sans export j’ai le carré.
      Il s’agit d’une exception et d’1 seul logo je vais copier un autre onglet en mettant en dur l’autre logo.
      Ca doit faire partie des différences des environnements… tant pis !
      En tout cas merci beaucoup pour vos réponses et votre disponibilité !!

  10. Bonjour,
    Merci pour vos « cours » sur EXCEL.
    Cependant j’ai un souci concernant ce post.
    Je n’arrive pas à afficher les photos stocké sur une autre feuille de mon classeur. (feuil2).
    Je ne sais pas où & comment indiquer d’aller rechercher les photos sur la feui2.
    =INDIRECT(RECHERCHEV(Nomdelonglet!$B$40;Nomdelonglet!$D$44:$E$46;2;0))
    Merci pour votre aide

  11. Je repose mon post suite à faute de français grossière , désolé 🙂
    Bonjour,
    Merci pour vos “cours” sur EXCEL.
    Cependant j’ai un souci concernant ce post.
    Je n’arrive pas à afficher les photos stockées sur une autre feuille de mon classeur. (feuil2).
    Je ne sais pas où & comment formuler la demande d’aller rechercher les photos sur la feui2.
    =INDIRECT(RECHERCHEV(Nomdelonglet!$B$40;Nomdelonglet!$D$44:$E$46;2;0))
    Merci pour votre aide

  12. Bonjour,
    J’ai essayé cette méthode sur le même classeur que vous avez mis en lien de téléchargement , en modifiant des formules pour aller chercher les photos sur une seconde feuille créée (Feuil2), mais quand je reproduis exactement le même schéma sur mon classeur , ça me met cette erreur lorsque je nomme, dans la barre des formules, la zone délimitée : référence non valide. J’ai pourtant bien dans le gestionnaire des noms de formule le bon libellé.
    Merci pour votre aide.

    1. Bonjour Droledepseudo,

      désolé pour le délai de réponse. Pour votre dernier message, avez-vous auparavant déjà quelque chose de sélectionné dans la liste déroulante ? Sinon l’erreur vient certainement de là.

      Pour votre question initiale voici un exemple de formule à entrer dans l’onglet « FORMULES », gestionnaire de noms, puis nouveau et dans « Fait référence à » :
      =INDIRECT(RECHERCHEV(Nomdelonglet!$H$40;Autrefeuille!$B$2:$C$4;2;0))
      Nomdelonglet!$H$40 est la cellule dans laquelle se trouve ma liste déroulante.
      Autrefeuille!$B$2:$C$4 est le tableau contenant le nom des images et les références de cellules.

      Je joins un fichier qui fonctionne avec les images sur un autre onglet que le choix, ce sera sans doute plus parlant : https://www.catupload.com/download/92a8c010ba580a27d8579d37dfbad362.html

      Bon courage, tenez moi au courant si toujours quelques problèmes.

      1. Jérémy bonjour,
        Merci pour votre réponse, effectivement dans mon premier post, je me suis aperçu par après de mon erreur quant au mon de la feuille (Feuil2) au lieu de (nomdelonglet) 🙂 …. c’est ce qui arrive quand on copie bêtement .. mais bon, j’avais rectifié, par contre une fois toutes les formules adaptées à mon classeur je suis tombé sur l’erreur de mon dernier post. Alors qu’en utilisant votre classeur et en recréant une autre liste sur une autre colonne et case (idem pour les données des photos), cela fonctionne sans que je change ma façon de faire. Mais je vais toutefois regarder si une sélection est faite lors du nommage de la zone délimitée. Si je comprends bien il faut que je sélectionne dans la liste déroulante le nom de l’mage qui fera référence ?

  13. Re bonjour Jérémy,
    Et bien , rien n’y fait ………:(
    Vraiment je ne vois pas où cela peut bloquer.je vais essayer sur un classeur vierge, et je vous tiens informé.

  14. Re bonjour,

    effectivement il faut que quelque chose soit déjà sélectionné dans la liste déroulante sinon on arrive à un message d’erreur. Pour le reste oui essayez en partant d’un classeur vierge. Si toujours pas de résultat n’hésitez pas à me mettre votre exemple en lien afin que l’on puisse voir ce qui « cloche ».

    Bonne journée !

    1. Bonjour Jérémy
      Bon , j’ai résolu le problème en recréant un classeur Excel vierge , et en y intégrant mes données.
      Je pense qu’il devait y avoir un souci avec mon classeur d’origine.
      Pourrais-tu m’aider pour une autre formule , ?
      Je souhaite afficher la lettre  » A  » dans une cellule, si dans un ensemble de cellules déterminées la valeur est différente de  » zéro « .
      Par avance merci de ton aide.

      1. Parfait, content que le premier fonctionne. Pour la 2ème demande je ne suis pas sûr d’avoir compris exactement tu souhaites :
        – afficher « A » dans une seule cellule si toutes les valeurs des autres cellules déterminées sont différentes de 0 ?
        – afficher un « A » dans plusieurs cellules, chacune correspondant à une valeur de l’ensemble de cellules délimitées ?

        1. Non, j’ai une colonne que l’on va nommer B.
          B1 est une cellule format texte (elle contiendra la formule). les cellules sous B1 ( B2,B3,B4 ……), sont des cellules au format monétaire (0,00€ ).
          Je souhaite que lorsque qu’une seule , ou plusieurs cellules (sous B1) ont une valeur différente de 0, la lettre  » A  » s’affiche dans la cellule B1.

    1. Jérémy bonjour,
      Merci pour ton retour, mais malheureusement ça ne fonctionne pas.
      Je vais essayer de trouver le pourquoi du comment.
      Merci encore pour ton aide.

  15. Jérémy bonjour,
    Merci pour ton retour, mais malheureusement ça ne fonctionne pas.
    Je vais essayer de trouver le pourquoi du comment.
    Merci encore pour ton aide.

    1. Jérémy,
      En bidouillant la formule dans pas mal de sens , je suis tombé sur celle-ci, et ça fonctionne .
      Merci
      =SI(NB.SI(B2:B6; »>0″)>0; »A »; » »)

      1. Content que ça fonctionne, la première fonctionnait dans mon classeur, celle-ci convient aussi s’il n’y a pas de nombres négatifs dans B2:B6, puisqu’elle cherche uniquement les supérieurs à 0.

        De rien et merci pour les commentaires !

  16. Bonjour Jérémy et merci de mettre à disposition ce tuto.
    Il y a longtemps que je cherche une solution pratique et légère (sans VBA ni Macros) et grâce à vous j’ai l’impression que la solution n’est pas loin. Il y a toutefois deux écueils que je dois encore franchir :
    1) ma page de résultats doit accueillir 15 images, chacune correspondant à un critère défini (no de série)
    2) la possibilité d’utiliser des listes déroulantes est exclue (les numéros de série apparaissent en fonction de différents critères calculés dans d’autres feuilles masquées).
    Là où je bloque, c’est au niveau de la définition du nom (est-ce bien pour la cellule d’appel de l’image?) et des zones d’images conditionnelles (dois-je bien en créer 15, chacune avec un nom différent?).
    Merci de m’aiguiller.
    Au plaisir de vous lire à ce sujet

    1. Bonjour Adam,

      merci pour votre commentaire. Si j’ai bien compris : votre image s’affichera suivant la valeur d’une cellule mais qui n’est pas une liste déroulante (mais une valeur calculée à partir d’autres données) ?

      Pour les images il doit effectivement bien y avoir une liste avec les 15 et les références de cellules correspondantes. Le nom sert à activer la formule qui va chercher la référence de la cellule.

      En espérant que ceci puisse vous aider…

      Bonne soirée !

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.