Modifier une image en fonction de la valeur d'une cellule à valeur variable

Bonjour à tous!

ça fait un moment que je cherche une solution à ce problème, que ce soit avec des fonctions ou avec du code.
Je veux créer une simulation de jeu de carte et je cherche a faire en sorte que que la bonne carte s'affiche en fonction de la valeur d'une cellule.

Je maitrise plutôt bien les fonctions, mais je débute sur VBA.

J'ai tenté le code suivant:

Sheets("Joueur 1").Select
If Range("C5").Value = 1 Then
Sheets("images").Select
ActiveSheet.Shapes.Range(Array("sept_coeur")).Select
Selection.Copy
Sheets("Interface J1").Select
Range("N9").Select
ActiveSheet.Paste

La cellule dont le résultat varie est donc C5 et la cellule ou je souhaite coller l'image est N9.

Le problème c'est qu'il faut répéter ce code autant de fois que le nombre de possibilités (il y a 32 cartes donc bon...)
J'espère que mes indications sont claires, merci d'avance pour vos réponses!

Bonjour et bienvenue

si tu postais un fichier, cela aiderait beaucoup

en attendant, tu peux regarder par ici : https://www.excel-pratique.com/fr/telechargements/utilitaires/afficher-photo-selon-valeur-excel-no47...

Bonjour Steelson et merci pour ta réponse!

Dans le fichier que tu me donnes, l'image n'apparait pas sur mon écran.
Je rencontre le même problème pour d'autres formules sensées fonctionner pour modifier des images sans macro. Je me demande s'il n'y a pas un mauvais réglage dans mes options Excel qui empêcherait la manip de fonctionner.

Je te met 2 technique que j'ai exploré dans mon fichier exemple:

La première: l'image liée dans l'onglet "Joueur 1". Apparemment il serait possible de modifier l'image grâce à une formule dans la barre de formule de l'image. Un message d'erreur apparait quand je tente.

La deuxième: cette méthode fonctionne même si elle est très laborieuse et nécessite un code complexe.:
Lorsque je modifie Joueur 1!C5, une macro copie la photo dans "images" qui correspond à la valeur de C5 et la colle dans interface!n9.
Le problème, en dehors de la taille excessive du code est que la macro ne fonctionne pas si C5 est modifiée par une fonction Excel.

19exemple.zip (348.40 Ko)

Dans le fichier que tu me donnes, l'image n'apparait pas sur mon écran.

En effet, elle n'apparait plus car le site d'images gratuites a été verrouillé !

<Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>902741671230FF49</RequestId>
<HostId>60C/mhhdmqRFsaNdxnwLMksbfht6Ru3JXswmnyXZuE2/vu/YIBsYR3sSdhLarX53xYJkr21xNaU=</HostId>
</Error>

je vais regarder ton fichier, sachant que toutes les images y sont déjà incorporées.

Mets plutôt ta collection de cartes dans un dossier séparé

Ensuite, la fonction que je t'ai proposée et légèrement modifiée fonctionne

Option Explicit
Const deltaX = 10 ' horizontal
Const deltaY = 20 ' vertical
Const offsetX = 0
Const offsetY = 0

Function AfficherImage( _
    ByVal image As String, _
    Optional ByVal largeur As Long = 100, _
    Optional ByVal hauteur As Long = 150, _
    Optional ByVal texte As String = "") As Variant
Application.Volatile
Dim oImg As Shape, oRng As Range
    Set oRng = Application.Caller.Offset(offsetY, offsetX)
    On Error Resume Next
        Set oImg = oRng.Parent.Shapes(Application.Caller.Address)
        oImg.Delete
    On Error GoTo 0
    If image = "" Then GoTo fin
    On Error GoTo fin
    Set oImg = oRng.Parent.Shapes.AddPicture(ThisWorkbook.Path & "\cartes\" & image & ".jpg", True, True, oRng.Left + deltaX, oRng.Top + deltaY, largeur, hauteur)
    oImg.Name = Application.Caller.Address
    AfficherImage = "ok"
    Exit Function
fin:
    AfficherImage = "pas d'image"
End Function
20exemple.zip (591.47 Ko)

La macro fonctionne si la cellule est modifiée par une fonction Excel.

ça y est j'ai réussi à comprendre comment ça fonctionnait xD

Un grand merci! Ta fonction marche super bien et elle résous à peu près tous mes problèmes!

Ben voilà, c'est l'Amérique, enfin je veux dire l'Europe.

Tu peux cliquer sur V pour terminer le fil.

Hello,

Bon, ça ne sert apparemment plus à rien vu que la macro marche mais, pour ta gouverne, je t'ai modifié la fonction pour que cela marche. La formule n'était pas bonne pour la zone nommée cartes, et il manquait une colonne dans ta base de données.

29copie-de-exemple.zip (331.50 Ko)
Rechercher des sujets similaires à "modifier image fonction valeur variable"