Faire apparaître une image selon valeur cellule

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

gildas lechat

XLDnaute Occasionnel
Bonjour,

J'ai un indicateur de Qualité production que j'aimerai améliorer avec votre aide.

je voudrai faire aparaître une image dans une cellule suivant le résultat d'une cellule voisine par rapport à un un objectif.

Vous trouverez ci joint un echantillon du fichier.

Merci de votre aide😀

Gildas
 

Pièces jointes

Re : Faire apparaître une image selon valeur cellule

Bonjour gildas le chat, abcd

voici une fonction personalisée qui permet d'afficher une image dans une cellule, en utilisant cette fonction comme une formule
Code:
Option Explicit
' Ecrite le 16/09/2008 par Wilfried_42
Function Image(img_nom As Variant, Optional chemin As String = "") As String
    ' Declaration des variables
    Dim ref As Range, sh As Shape, drap As Boolean
    ' ref : la cellule qui provoque la fonction
    ' sh : les shapes
    ' Drap : drapeau definissant si la shape est trouvée
    Application.Volatile ' defini une fonction qui se recalcule automatiquement
' teste le type de variable soit une cellule soit une valeur alphanumerique
    Select Case TypeName(img_nom)
        Case "Range" ' c'est une reference cellule
            Image = img_nom.Value
        Case "String" ' c'est une valeur alphanumerique
            Image = img_nom
        Case Else ' c'est une erreur
            Image = "#ERROR"
            Exit Function
    End Select
' le chemin est un parametre optionnel, s'il est omis, la valeur est le chemin du classeur
    If chemin = "" Then chemin = ThisWorkbook.Path
' le chemin ne se termine pas forcemment par \ je le rajoute
    If Right(chemin, 1) <> "\" Then chemin = chemin & "\"
    Set ref = Application.Caller ' affectaction à ref de la cellule qui lance la fonction
    If ref.MergeCells = True Then Set ref = Range(ref.MergeArea.Address)
    drap = False ' initialisation du drapeau
    For Each sh In ref.Worksheet.Shapes ' je passe en revue toute les shapes
' je teste son nom construite plus bas pour savoir si c'est la bonne shappe
        If "Img-" & ref.Address = Left(sh.Name, Len(ref.Address) + 4) Then drap = True: Exit For
    Next
    If drap = True Then ' c'est la bonne shape
' je teste maintenant si c'est la meme que celle de la formule pour ne pas refaire le traitement
' Le gain de temps n'est pas negligeable
       If "Img-" & ref.Address & "-" & Image = sh.Name Then GoTo fin ' egalité parfaite, je sors
    End If
    On Error Resume Next ' controle d'erreur, si la shape n'existe pas encore, l'instruction suivante provoque une erreur
    sh.Delete ' je detruits la shap
    If Image = "" Then Exit Function ' la valeur est à "" alors pas de shape à affecter
' j'inserre la shape, avec l'image en lui mettant les tailles necessaires pour la cellule
    Set sh = ref.Worksheet.Shapes.AddPicture(chemin & Image, True, True, ref.Left, ref.Top, ref.Width, ref.Height)
    sh.Name = "Img-" & ref.Address & "-" & Image ' je definis son nom pour la trouver plus tard
fin:
    Image = "Img" & ref.Address ' j'affecte un nom pour resultat
End Function
Utilisation :
Code:
=Image(img_nom; [chemin])
img_nom : le nom de l'image
Chemin : le chemin du fichier image (si l'image est dans le meme chemin que le classeur, il n'est pas necessaire de le mettre)
exemple d'utilisation dans une formule
Code:
=Si(note<5;Image("Mauvais.jpg");si(note<10;Image("Pas Bon.jpg");si(note<15;Image("Moyen.jpg");si(note<20;Image("Bon.jpg");Image("Excelent.jpg")))))
 
Re : Faire apparaître une image selon valeur cellule

Salut Wilfried

recherchant la même fonction j'ai utilisé tes conseils. Ca fonctionne mais très vite excel plante après à chaque fois
et je ne sais pas pourquoi
mon fichier dépasse la taille ( 6.5 Mo) comment te le transmettre?
ça se passe dans l'onglet Fiche produit lors de la sélection d'un produit dans la liste, les deux premiers produits sont prévus pour tester

merci de me dire si tu peux m'aider
Pat
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour