Excel vba supprimer une image [Fermé]

Jinchoo - 20 janv. 2010 à 11:58 - Dernière réponse : eriiic 21192 Messages postés mardi 11 septembre 2007Date d'inscriptionContributeurStatut 15 décembre 2017 Dernière intervention
- 20 janv. 2010 à 13:42
Bonjour,

Dans le cadre de mon travail, j'ai créé une feuille Excel avec une macro permettant d'afficher une image
suivant la valeur d'une cellule.

Voici le code que j'ai créé :

Private Sub Worksheet_change(ByVal Target As Range)

Dim objFeuille As Worksheet, objPict As Picture

If Worksheets("Feuil1").Range("J4").Value = "D1" Then
Set objFeuille = ActiveSheet
Set objPict = objFeuille.Pictures.Insert("F:\dirjinchoo\Fiche technique\Type de chanfrein\D1.bmp")
With objPict
.Left = Range("J5").Left
.Top = Range("J5").Top
End With

End sub

Cette macro fonctionne, lorsque je tape la valeur D1 dans la cellule J4 la photo apparait dans la cellule J5.
Jusqu'ici il n'y a pas de problème.
Mais quand je retire la valeur de la cellule, l'image précédemment apparue reste affichée alors que je souhaiterais qu'elle s'efface.

Est-il possible d'avoir une aide ?
merci d'avance
Jinchoo
Afficher la suite 

1 réponse

eriiic 21192 Messages postés mardi 11 septembre 2007Date d'inscriptionContributeurStatut 15 décembre 2017 Dernière intervention - 20 janv. 2010 à 13:42
0
Utile
Bonjour,

corrigé :
Private Sub Worksheet_change(ByVal Target As Range) '
    Dim objFeuille As Worksheet, objPict As Picture
    If Intersect(Target, [J4]) Is Nothing Then Exit Sub
    If Target = "D1" Then
        Set objFeuille = ActiveSheet
        Set objPict = objFeuille.Pictures.Insert("C:\Users\Public\Pictures\Sample Pictures\Desert.jpg")
        With objPict
            .Left = Range("J5").Left
            .Top = Range("J5").Top
            .Name = "imageJ4"
        End With
    Else
        On Error Resume Next
        Pictures("imageJ4").Delete
        On Error GoTo 0
    End If
End Sub


eric

EDIT : correction du code, ma réponse était incomplète.