Ho testato le righe che mi hai scritto e il programma funziona benissimo.
Purtroppo nel frattempo è sorto un altro inconveniente,nel senso che avrei la necessita di specificare ,distinatmente,le dimensioni delle immagini visualizzate in C2 e C13.
Se riesci a fare il miracolo..........
Grazie
Questo è il codice che sto usando:
...
Ciao,
dal cappello mi è uscito questo. ;)
Modifica, però, le dimensioni delle immagini nelle righe evidenziate.
Andrea.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim picName As String, celImage As String
Dim dWidth As Double, dHeight As Double
picName = vbNullString
On Error Resume Next
If Target.Address = "$A$2" Then
'---------- imposta qui le dimensioni dell'immagine in C2
dWidth = 70 ' larghezza in mm
dHeight = 50 ' altezza in mm
picName = Target.Value
celImage = "C2"
ActiveSheet.Shapes("Immagine" & celImage).Delete
ElseIf Target.Address = "$A$13" Then
'---------- imposta qui le dimensioni dell'immagine in C13
dWidth = 70 ' larghezza in mm
dHeight = 50 ' altezza in mm
picName = Target.Value
celImage = "C13"
ActiveSheet.Shapes("Immagine" & celImage).Delete
End If
On Error GoTo 0
'---------- copia immagine dal foglio pict
If Len(picName) Then
Sheets("pict").Shapes(picName).Copy
Me.Range(celImage).Select
Me.Paste
Selection.ShapeRange(1).Name = "Immagine" & celImage
End If
'---------- ridimensiona immagine
With Me.Pictures("Immagine" & celImage)
.ShapeRange.LockAspectRatio = msoFalse
.Width = Application.CentimetersToPoints(dWidth / 10#)
.Height = Application.CentimetersToPoints(dHeight / 10#)
End With
Target.Select
End Sub