Ho creato una macro che, inserendo un nome in una cella della colonna A (Elenco_Articoli) mi restituisce sulla stessa riga, nella colonna F, la relativa foto abbinata (ricercandola sul server di rete).
Ho bisogno di un chiarimento riguardo i 4 punti seguenti:
1: E' NECESSARIO INSERIRE: " 'Target.Offset(1, 0).Select " ?
Copiato "spudoratamente" da un vostro forum non riesco a capire se, nel mio caso, è essenziale o meno; per il momento direi di no, gli ho messo l'apice e non mi crea problemi...
2: PROBLEMA FOTO MANCANTE - Capita che inserendo nella colonna A un nome al quale non è abbinata una foto mi vada in Debug... Visto che devo dare questo file a persone inesperte, è possibile far si che in questo caso appaia un'immagine standard ad es. con la scritta "immagine non disponibile"?
3: PROBLEMA POSIZIONAMENTO - Come da Routine sotto riportata potete notare che ho dato istruzione di inserire l'immagine allineata alla riga dove ho inserito il codice nella 5A colonna; il mio problema è che tutte le foto sono di dimensioni diverse: è possibile centrarle nella colonna 5 indipendentemente dalla relativa dimensione?
4: INSERIMENTO MULTIPLO: il tutto funziona se inerisco un nome dopo l'altro nella colonna A; non funziona se invece ad es. copio una serie di nomi e la incollo nella colonna. Perchè?
ISTRUZIONI UTILIZZATE
- Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
If Application.Intersect(Target, Range("ELENCO_ARTICOLI")) Is Nothing Then Exit Sub
On Error Resume Next
ActiveSheet.Shapes("FOTO_DA_" & Target.Offset(0, 0).Address(0, 0)).Delete
On Error GoTo 0
'Target.Offset(1, 0).Select
ActiveSheet.Pictures.Insert("\\Nas-mac\apple2\Offerte Fotografiche\Articoli 300\IMMAGINI\" & Target.Value & _
".jpg").Select
Selection.Name = "FOTO_DA_" & Target.Offset(0, 0).Address(0, 0)
'Selection.ShapeRange.Width = 150 (per fissare larghezza)
'Selection.ShapeRange.Height = 80 (per fissare altezza)
Selection.ShapeRange.Height = 79
If Selection.ShapeRange.Width > 150 Then
Selection.ShapeRange.Width = 150
End If
'Selection.ShapeRange.Width = 150
'PER POSIZIONARE L'IMMAGINE
Selection.ShapeRange.Left = Target.Offset(0, 5).Left
Selection.ShapeRange.Top = Target.Offset(0, 0).Top
Target.Select
End Sub
Grazie mille
Saluti
Stefano