Ciao,
in realtà restituisce un errore anche se viene modificata una cella qualunque (che non sia B8) all'interno del foglio...
Dovresti aggiungere qualche verifica al codice.
Inoltre, nel caso che il file immagine non sia presente nella cartella, dovresti prevedere cosa usare al suo posto e potresti usare un'immagine del genere (da mettere nella cartella dove si trovano le altre immagini):
oppure farti avvisare con un MsgBox (io ho optato per l'immagine allegata sopra).
Il codice diventerebbe:
- Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
Dim image1 As String, image2 As String
If Not Intersect(Target, Range("B8")) Is Nothing And Target <> "" Then
image1 = Range("e10").Value
image2 = Range("e21").Value
If Dir(ThisWorkbook.Path & "\paperino\" & image1 & ".jpg") = "" Then
image1 = "Assente"
End If
If Dir(ThisWorkbook.Path & "\paperino\" & image2 & ".jpg") = "" Then
image2 = "Assente"
End If
Worksheets("Foglio1").image1.Picture = LoadPicture(ThisWorkbook.Path & "\paperino\" & image1 & ".jpg")
Worksheets("Foglio1").image2.Picture = LoadPicture(ThisWorkbook.Path & "\paperino\" & image2 & ".jpg")
End If
End Sub
Ti riallego il file:
http://www.filedropper.com/prova-immagini