Insérer une image dans une cellule comme résultante d'une fonction

Hello,

J'ai créé un fichier de gestion de stock comprenant (par exemple) 100 lignes, chaque ligne représentant un objet du stock en question, avec, dans les différentes colonnes, les caractéristiques de l'objet (couleur, âge, quantité, prix, etc...)

la dernière colonne correspond au résultat d'une fonction logique combinant ces différentes caractéristiques

cette fonction peut ainsi donner 5 résultats différents, selon les objets concernés.

Je voudrais exprimer ce résultat en faisant apparaître (en insérant) une "image" donnée (par un icône) dans la cellule correspondante

comment faire apparaître cette image, car en indiquant dans la fonction la cellule où se trouve l'image de référence, j'obtiens 0, et Excel ne reconnait pas l'image en tant que valeur ?

Merci de votre aide

Bonjour,

Un petit bout de votre fichier sans données confidentielles serait le bienvenu, sans cela, difficile d'imaginer le contexte.

Cdlt

Salut,

Je verrais plutôt un passage par Copy, dans ce style, macro non testée...

Dim sh As Worksheet

Dim shasFruits As ShapeRange
' // On affecte les images à l'Objet ShapeRange
' // Cela peut permettre de grouper les images Fruits; Légumes; etc....
' // Les images doivent être présentes sur la feuille FeuilleSource
Set shasFruits = Worksheets("FeuilleSource").Shapes.Range(Array("Image1", "Image2", "Image3", "Image4", "Image5"))
' // Tu utilises l'index de ton résultat pour sélectionner l'image voulue
shasFruits(2).Copy
' // On colle la forme dans la feuille
sh("FeuilleDestination").Paste Destinaion:=(sh.Range("A1"))

Bonjour,

Voici le fichier avec une macro évènementielle qui réagit à toutes modifications des cellules des colonnes I et J.

la macro du placement des bouteilles:

Sub Placement_Bouteilles()
    Dim f1 As Worksheet, f2 As Worksheet
    Dim i As Long, DerLig As Long, Col As Long

    Application.ScreenUpdating = False
    Set f1 = Sheets("Feuil1")
    Set f2 = Sheets("Feuil2")
    DerLig = Range("A" & Rows.Count).End(xlUp).Row
    Col = 11
    NbShapes = ActiveSheet.Shapes.Count
    For Each Sh In f1.Shapes 'on efface les images existantes
        For i = 1 To NbShapes
            On Error Resume Next
            If Err.Number = 0 Then
                ActiveSheet.Shapes(Sh.Name).Select
                Selection.Delete
                Exit For
            End If
            On Error GoTo 0
        Next i
    Next

    For i = 3 To DerLig
        Worksheets(f2.Name).Shapes("Shape " & f1.Cells(i, "K")).Copy 'on copie l'image correspondant au N° trouvé
        Worksheets(f1.Name).Paste f1.Cells(i, "K") 'on colle l'image
        With Worksheets(f1.Name).Shapes("Shape " & f1.Cells(i, "K")) 'on centre l'image dans la cellule
            .Top = f1.Cells(i, "K").Top + 5
            .Left = f1.Cells(i, "K").Left + 25
        End With
        NbShapes = ActiveSheet.Shapes.Count 'on compte le nombre d'images déjà créées
        If NbShapes < 6 Then NbShapes = 5
        Selection.Name = "Shape " & NbShapes + 1 'on affecte un nouveau numéro à l'image
    Next i
    Set f1 = Nothing
    Set f2 = Nothing
End Sub

Cdlt

Merci Arturo pour ta contribution

j'ai tenté de l'appliquer à l'ensemble de ma BDD mais je n'y arrive pas correctement

je vais donc reprendre ton code ligne à ligne; les commentaires vont m'y aider

a bientôt

Hello

Quelqu'un pense t il que cela soit possible sans passer par VBA en se contentant d'une fonction?

merci

j'ai tenté de l'appliquer à l'ensemble de ma BDD mais je n'y arrive pas correctement

J'ignore quel est votre problème mais déjà, pour que ça marche bien, il faut que la hauteur des lignes soit réglée à 40.5 et la largeur de la colonne K à 10.71, c'est à partir de ces valeurs que j'ai calculé l'emplacement des images. Si le problème ne se situe pas là, dites-moi où il se trouve.
Rechercher des sujets similaires à "inserer image comme resultante fonction"