Assigné une image a une cellule avec liste déroulante

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 !

Jul74ien74

XLDnaute Nouveau
Bonjour,

je souhaite assigné une image correspondant à un choix dans une cellule a liste déroulante.
voici mon fichier exemple.
le but est qu'en cellule F25 je choisi l'action dans la liste déroulante, cela m'affiche l'action et je souhaite que cela m'affiche dans la cellule J25 limage correspondant a l'action.

merci
 

Pièces jointes

Re : Assigné une image a une cellule avec liste déroulante

alors juste pour savoir,

voici mon code

Sub Bouton5_Cliquer()


Dim objFeuille As Worksheet, objPict As Picture
For Lig = 24 To 100
If Cells(Lig, 11).Value = "Créer" Then
Set objFeuille = ActiveSheet
Set objPict = objFeuille.Pictures.Insert("\\file.media.int\Users_RTS\DurandJu\Desktop\creer.jpg")
With objPict
.Left = Cells(Lig, 6).Left
.Top = Cells(Lig, 6).Top
.Height = Cells(Lig, 6).Height
.Width = Cells(Lig, 6).Width
End With


Else
If Cells(Lig, 11).Value = "Supprimer" Then
Set objFeuille = ActiveSheet
Set objPict = objFeuille.Pictures.Insert("\\file.media.int\Users_RTS\DurandJu\Desktop\supprimer.jpg")
With objPict
.Left = Cells(Lig, 6).Left
.Top = Cells(Lig, 6).Top
.Height = Cells(Lig, 6).Height
.Width = Cells(Lig, 6).Width
End With
Else
If Cells(Lig, 11).Value = "Ne pas toucher" Then
Set objFeuille = ActiveSheet
Set objPict = objFeuille.Pictures.Insert("\\file.media.int\Users_RTS\DurandJu\Desktop\rien faire.jpg")
With objPict
.Left = Cells(Lig, 6).Left
.Top = Cells(Lig, 6).Top
.Height = Cells(Lig, 6).Height
.Width = Cells(Lig, 6).Width
End With

End If
End If
End If
Next Lig
End Sub

la ou veux améliorer une chose c'est que je veux que si la cellule Lig,11 contient déjà quelque choses, qu'il ne me remette pas l'image par dessus... car a chaque appuie sur mon bouton il rajoute des images par dessus les autres...
 
Re : Assigné une image a une cellule avec liste déroulante

la ou veux améliorer une chose c'est que je veux que si la cellule Lig,11 contient déjà quelque choses, qu'il ne me remette pas l'image par dessus... car a chaque appuie sur mon bouton il rajoute des images par dessus les autres...

Il faut commencer par faire un Delete de l'image précédente dans la cellule concernée avant d'insérer la nouvelle image
 
Re : Assigné une image a une cellule avec liste déroulante

Pour ton problème, je me suis inspiré de ce fichier que j'avais fait suite à une demande sur ce forum
Il s'agissait bien d'insertion d'image
Ce que je t'ai fait : c'est une simple copie du contenu d'une cellule (celle où se trouve la flèche à insérer : Cxx). Avant insertion dans la colonne J, je commence par un Delete du contenu de cette cellule (même s'il n'y a rien)

Dans le fichier que je te joins, il s'agit d'image à insérer en face d'un jour donné d'un mois donné. Je commence la procédure par un Delete de l'image qui peut être présente dans la cellule traitée (en fait un Delete des 3 images possibles dans la cellule, ce qui fait que 2 Delete ne servent à rien mais n'empêche pas la procédure de fonctionner)
 

Pièces jointes

Re : Assigné une image a une cellule avec liste déroulante

Bonjour,

voici mon bout de code

Sub Bouton5_Cliquer()

Dim objFeuille As Worksheet, objPict As Picture


If Not (Intersect(Target, Range("F24:F100")) Is Nothing) Then
Application.ScreenUpdating = False
feuil = ActiveSheet.Name
opt = Target.Value
adr = Target.Row
Range("F" & adr).Select
jour = Val(Format(Range("K" & adr), "dd"))

ActiveSheet.Shapes("Créer" & jour).Delete
ActiveSheet.Shapes("Supprimer" & jour).Delete
ActiveSheet.Shapes("Ne pas toucher" & jour).Delete


If Cells(Lig, 11).Value = "Créer" Then
Set objFeuille = ActiveSheet
Set objPict = objFeuille.Pictures.Insert("\\file.media.int\Users_RTS\DurandJu\Desktop\creer.jpg")
With objPict
.Left = Cells(Lig, 6).Left
.Top = Cells(Lig, 6).Top
.Height = Cells(Lig, 6).Height
.Width = Cells(Lig, 6).Width
End With



Else

If Cells(Lig, 11).Value = "Supprimer" Then
Set objFeuille = ActiveSheet
Set objPict = objFeuille.Pictures.Insert("\\file.media.int\Users_RTS\DurandJu\Desktop\supprimer.jpg")
With objPict
.Left = Cells(Lig, 6).Left
.Top = Cells(Lig, 6).Top
.Height = Cells(Lig, 6).Height
.Width = Cells(Lig, 6).Width
End With


Else

If Cells(Lig, 11).Value = "Ne pas toucher" Then
Set objFeuille = ActiveSheet
Set objPict = objFeuille.Pictures.Insert("\\file.media.int\Users_RTS\DurandJu\Desktop\rien faire.jpg")
With objPict
.Left = Cells(Lig, 6).Left
.Top = Cells(Lig, 6).Top
.Height = Cells(Lig, 6).Height
.Width = Cells(Lig, 6).Width
End With
End If
End If
End If


End If




End Sub

mais ca marche pas...
 
Re : Assigné une image a une cellule avec liste déroulante

Je ne vois pas bien ce que tu veux faire et pourquoi la version précédente basée sur la gestion événementielle ne te convient pas

j'ai inséré tes 3 images dans le fichier : elles portent les noms "créer" , "supprimer" et "rienfaire"

Dans la mesure où il faut les différencier, la notion de ligne concernée (et non le jour) est nécessaire pour supprimer l'image précédente en cas de modification dans la colonne F et réinsérer la nouvelle image

Il faut cliquer sur le bouton pour la mise en oeuvre de l'option choisie
 

Pièces jointes

Re : Assigné une image a une cellule avec liste déroulante

Alors dans un premier temps il y a un bug de fonctionnement dans ta version que tu viens de me donner:

en effet si tu te place sur une cellule vide, peu importe dans quelle colonne, et que tu appuis sur le bouton, alors il te colle une image dans la ligne ou tu es et si tu reclic 4 fois de suite il te fais un escalier..., ce qui n'est pas ce que je veux.


ensuite dans la version qui fonctionne a 95 % comme je le veux, il faut juste que j'arrive a supprimer les doublons que la macro me créer.
 
- 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

  • Question Question
XL 2016 liste
Réponses
10
Affichages
301
Retour