Apparition d'une image dans un tableau excel

bonjour,
dans un tableau excel, j'aimerais faire apparaitre une image lorsque le résultat d'une formule conditionnelle est "oui".
j'ai déjà fait la formule conditionnelle, mais comment faire pour l'image ????
je précise que c'est excel 2003.
merci de m'aider !!!

14 réponses

Résumé de la discussion

Le problème porte sur l'affichage d'une image lorsque le résultat d'une formule conditionnelle est « oui » dans Excel 2003, question fréquemment posée par les utilisateurs pour des rapports visuels. Une solution courante consiste à placer l'image dans le commentaire associé à la cellule: insérer le commentaire, ouvrir le format, puis utiliser l'onglet Image pour choisir la photo. Autres approches pertinentes incluent une macro VBA qui insère une image selon la valeur, ou l'utilisation d'un nom dynamique qui renvoie à une image dans une cellule et affiche ensuite l'icône correspondante. D'autres pistes évoquent des ressources externes et des solutions sans macro, par exemple l'utilisation de motifs et textures dans les commentaires ou des méthodes alternatives disponibles sur des sites spécialisés.

Bobot (l’IA à votre service)
  1. Bonjour

    Voici une bonne et simple méthode (à vous de juger) --> Mettre une photo dans le commentaire associé à la cellule.

    Pour cela :

    1 Insérer un commentaire
    2 Clic Droit sur les bordures
    3 Format de commentaire
    4 Couleur et traits
    5 Couleur de remplissage
    6 Onglet image
    7 Sélection de la photo !

    Voili, voilou
    Michel
    1. Un grand merci à Speedyxmitch, je suis tombé un peu par hasard sur cette astuce alors que je me creusais le cerveau pour trouver des macros ou autre truc pour afficher une image sans pourrir mon tableau.
      C'est facile, rapide et efficace. Nickel :D
    2. Merci, c'est génial....
    3. Simple et efficace ! ! !
    4. Bien joué! Merci beaucoup! Devant tant de compétences, vous pouvez aussi peut-être expliquer comment insérer une image depuis un bouton! Je tente, je lis les forums, en vain...
    5. Exellent ! je n'y avais pas pensé !! merci Michel !!
  2. Merci beaucoup...
    je pense que j'ai trouvé.
    1. Contributeur
      alors donne la réponse ici ou un lien pour que ça profite à tout le monde !
  3. J'ai fait une formule de condition de cette forme:
    =si(A4>=10;"C";"D")
    et je parametre la police de la cellule du résultat sur wingdings.
    donc si la moyenne (cellule A4) est plus grande que 10 il y a un pouce levé qui apparait ou sinon il y a un pouce baissé.
    ce n'est pas tout à fait ce que je voulais, en fait c'était un clipart que je voulais faire apparaitre, mais ça a l'air trés compliqué. mes élèves se contenteront d'un pouce levé ou baissé !!!
    merci
    1. Dim objFeuille As Worksheet, objPict As Picture
      
      If worksheets("Feuil1").Range("A4").Value >= 10 then
      Set objFeuille = ActiveSheet
      Set objPict = objFeuille.Pictures.Insert("adresse_complete_de_l_image_desiree_1")
      With objPict
          .Left = Range("G2").Left
          .Top = Range("G2").Top
      End With
      Else
      Set objFeuille = ActiveSheet
      Set objPict = objFeuille.Pictures.Insert("adresse_complete_de_l_image_desiree_2")
      With objPict
          .Left = Range("G2").Left
          .Top = Range("G2").Top
      End With
      End if
      
      

      1. heu... merci....oui je veux bien....
        mais il faut m'expliquer où est ce que je le met ça !!!???
      2. @tcialol

        Dans la fenetre vba> Feuil1 :

        Private Sub Worksheet_Change(ByVal Target As Excel.Range)
        le code que je t'ai filé
        End sub()


        Enfin le code marche juste pour la cellule "A1", je ne sais pas si tu veux faire çà pour plusieurs cellules...

        Et là çà vérifira à chaque fois qu'il y a une modification de la feuille..
      3. @Utilisateur anonymebon je suis vraiment nulle
        ça marche pas..
        c'est pas grave je vais rester sur la solution que j'ai dit plus haut.
        merci quand même.
      4. @tciaLe code qui marche :

        Private Sub Worksheet_Change(ByVal Target As Excel.Range)

        Dim objFeuille As Worksheet, objPict As Picture

        If Worksheets("Feuil1").Range("A4").Value >= 10 Then
        Set objFeuille = ActiveSheet
        Set objPict = objFeuille.Pictures.Insert("C:\Temp\signature_lotus_fichiers\image001.gif")
        With objPict
        .Left = Range("G2").Left
        .Top = Range("G2").Top
        End With
        Else
        Set objFeuille = ActiveSheet
        Set objPict = objFeuille.Pictures.Insert("adresse_complete_de_l_image_desiree_2")
        With objPict
        .Left = Range("G2").Left
        .Top = Range("G2").Top
        End With
        End If
        End Sub

        --> modifer l'emplacement de l'image ...
        @+
      5. @clorentSalut Clorent,

        merci pour ton code, il marche très bien. en revanche en cas de modification des chiffres, il ne change pas l'image qui apparaît dans la cellule mais en rajoute une par dessus.
        comment faut il faire pour que l'image affichée soit changée en cas de changement sans avoir a effacer l'image précédente afin de ne pas se retrouver avec des images superposées dans la même case?
        merci encore pour ton aide

        fabrice
    2. Une autre solution:
      Passer en conception sur la feuille excel, insérer une image, puis une autre (Appelées ici Image1 et Image2).
      Faire Alt+F11 pour rentrer dans la programmation, et au niveau de la feuille (Worksheet Selection Change), saisir:

      Private Sub Worksheet_SelectionChange(ByVal Target As Range)
      If Worksheets("Feuil1").Range("B2").Value > 10 Then
      Image1.Visible = True
      Image2.Visible = False
      Else
      Image1.Visible = False
      Image2.Visible = True
      End If
      End Sub

      Si la cellule B2 est supérieure à 10, l'image1 s'affiche, sinon, c'est l'image2.
      1. Bonjour,

        effectivement sur Vériti, une solution sans macro, relativement simple à mettre en oeuvre (mais pas top expliquer...)

        le site Vériti déjà donné:
        http://vlohr.free.fr/Forum_VeriTi/forum_1.php?

        le fichier d'exemple à télécharger:
        http://www.veriti.net/download_plus.php?lng=fr&pg=385&usd=

        plus d'explic:
        vous voulez faire afficher un smiley triste si la valeur prise par la cellule B5 est <à 5 et un smiley happy si la valeur prise par la cellule B5 est >à 5
        il vous faut vos images de smileys, un triste, un gai que vous collez dans deux cellules par exemple, G5 et H5

        vous créer un nom dynamique (càd qui bouge en fonction de la valeur que prend une cellule):
        Insertion>Nom>Définir

        Nom: Condition
        Fait référence à: (vous rentrez votre formule) = si(B5<5;G5;H5)

        là où vous souhaitez voir apparaître votre icone qui change de tête selon la valeur, vous insérer une image.
        Important, il faut vraiment que ce soit une image, avec une zone de texte, ça ne marche pas.
        vous insérez n'importe quelle image aussi étonant que cela puisse paraitre au départ.
        par contre, il faut à tout prix que ce soit véritablement une image Insertion>Image
        vous prenez par exemple Sélectionnez à partir d'un fichier et vous chopez une des images mise d'office dans windows, par exemple une montagne...
        vous la réduisez à la taille souhaitée
        vous vous mettez sur le cadre (visualisation des points qui dessinent l'objet) et enfin, vous aller dans la barre de formule ou vous tapez =Condition

        a y est, si vous rentrez 6 dans la cellule B5, vous aurez un sourire...

        a+

        mimile
        1. Bonjour,

          je ne trouve pas l'onglet image!!
          1. Contributeur
            salut
            de quoi tu parles ? quel onglet image ?
        2. Salut,

          doudou doit parler de la solution de speedymitch, message 13.
          d'après cette soluce, on pourrait afficher une image dans un commentaire et effectivement, speedymitch parle d'un "onglet image"...
          je ne trouve pas non plus cet onglet éventuel...
          je ne vois pas bien la solution non plus.

          bon courage

          mimile
          1. Bonjour doudou77 et mimile

            Effectivement, vous avez raison, il manquait "motifs et textures"

            1 Insérer un commentaire
            2 Clic Droit sur les bordures
            3 Format de commentaire
            4 Couleur et traits
            5 Couleur de remplissage
            6 Motifs et Textures
            7 Onglet image
            8 Sélection de la photo !

            Bon WE et sorry pour tout le monde.

            Michel
            1. Il manquait "motifs et textures" :

              1 Insérer un commentaire
              2 Clic Droit sur les bordures
              3 Format de commentaire
              4 Couleur et traits
              5 Couleur de remplissage
              6 Motifs et Textures
              7 Onglet image
              8 Sélection de la photo !

              Sorry pour tout le monde.

              Michel
              1. Est ce que quelqu'un à réussi a faire varier les images en fonction du résultat d'une recherche V
                1. Contributeur
                  le commentaire (ici l'image) est attaché à la cellule pas au contenu
                2. @UsulArrakisd'ou l'utilisation de la fonction décaler en fait

                  Mon problème était complexe, il ne s'agissait pas de faire apparaître 2 images différentes mais 5 et les fonctions SI c'est pénible

                  Donc j'ai fait un tableau dans lequel je fait des rechercheV et la fonction trouve toute seule qu'il s'agit d'interval de recherche avec l'argument Valeur proche a VRAI

                  Donc je lui fait me renvoyer un nombre compris entre 0 et 4 pour l'occasion qui j'incorpore dans une fonction décaler
                  nommée Image_selection (menu insertion > nom > définir) et du coup ça marche

                  Bref, plus d'explication a celui que le souhaite :p
                3. @EnioSalut Enio...

                  Je fonctionne actuellement sous la version 2007 d'excel. En suivant ce topic, je reste sur ta fin =)
                  Oui, je ne suis pas à l'aise avec toutes ces fontions de macros... alors je me suis arrêté sur tes dernières lignes. Je suis (du moins si j'ai bien compris) dans un cas similaire au tient. Oui, je travaille sur un doc pour ma boîte sur la gestion automatic de nos confections de Lots.

                  Pour faire claire et simple, je prend une ref. de base: B1 et associés par 2 devient B2.
                  En demandant donc B2 à Excel, il me sort à la fin TOUT le listing dont j'ai besoin EXCEPTE le "sticker" que j'aimerai voir apparaître également. Je ne sais donc pas comment jongler entre les rechercheV et les images!!! Je ne sais pas s'il existe via Excel une fonction qui jointerai la RechercheV avec une image, sans "SI POSSIBLE" utiliser de macros car ce langage là dépasse de loin mes compétences sur le domaine =(

                  Merci en tout cas pour les lumières que tu (ou toute autre personne compétente) pourrais m'apporter!!!
                4. @EnioFonction décaler et images, je suis trés interressé par la fin de ton explication, comment lier une référence de cellules à une image

                  merci beaucoup pour ton aide
              2. Une solution sans VBA parmi d'autres :
                - Tu positionnes tes deux images exactement sur deux cellules côte à côte (sur Feuil2 en A1 et B1)
                - Puis, tu définis un nom (ex: MesImages) avec la formule decaler qui te renverra la coordonnée de
                la première image ou de la deuxième image, suivant le contenu de ta cellule de langue
                =DECALER(Feuil2!$A$1;0;Feuil1!$B$10;1;1)