Non so che activex stai cercando di usare, puoi invece procedere in questo modo:
-ti registri una macro mentre inserisci sul tuo file una qualsiasi delle immagini
-aggiungi al codice, in testa, una istruzione tipo
- Codice: Seleziona tutto
FNomFile="C:\directory\subdirectory\Picture\" & Range("Y1").value
-modifichi l' istruzione che importa il file per modificare la stringa del nome con la variabile prima calcolata.
Infine scrivi una macro di Worksheet_Change in cui:
-le prime istruzioni sono
- Codice: Seleziona tutto
If Target.Addres <> "$Y$1" Then exit sub
Application.EnableEvents = False
On Error GoTo Exita
If Range("Z1").value <> "" then ActiveSheet.Shapes(Range("Z1").value).Delete 'Z1 = cella di servizio libera
-Poi inserisci le istruzioni della macro di importa immagine modificata come sopra (ovviamente senza il titolo e senza End Sub),
-infine
- Codice: Seleziona tutto
Range("Z1").value = Selection.ShapeRange.Name 'Z1 = cella di servizio; modificare a piacere
Exita:
Application.EnableEvents = True
End Sub
In questo modo quando cambi il contenuto di Y1 cancelli la precedente immagine e inserisci la nuova.
Ciao.