Buongiorno,
sono nuovo di questo blog, tra tanti lo ho trovato il più utile, premetto che non ho esperienza con VBA e ho fatto un collage di codice trovato tra le vostre discussioni, viceversa con excel va un po meglio, spiego il mio problema :
Serve che al variare dei valori riportati in una cella (es: foto_1, foto_2, foto_3, ecc.), far comparire un'immagine con nome corrispondente (es: foto_1, foto_2, foto_3, ecc.) sulla stessa riga, il codice che ho assemblato funziona se la cella che contiene il nome dell'immagine è un menù a tendina (convalida dati), oppure se digito il nome a mano, non funziona però se cella che contiene il nome fa riferimento ad una terza cella che "calcola" il nome (es: foto_1, foto_2, foto_3, ecc.), io avrei bisogno proprio di questo, come posso risolvere il mio problema?
Allego anche il codice che ho assemblato e spero in un Vostro aiuto, ringrazio anticipatamente.
Carrer Mauro
San Donà di Piave (VE)
CODICE :
Private Sub Worksheet_Change(ByVal Target As Range)
'
ListaF = "B414:B614" '<<< Le celle con nome immagine
For Each Cella In Target
If Not Application.Intersect(Cella, Range(ListaF)) Is Nothing Then
On Error Resume Next
ActiveSheet.Shapes("FOTO_DA_" & Cella.Address(0, 0)).Delete
On Error GoTo 0
Cella.Select
If Dir("H:\SOLE\Programmi SOLE srl\Preventivatori\Preventivatore FTV + AI\Preventivatore Rev 03 del 05 01 14\Schede tecniche\" & Cella.Text & ".jpg") = "" Then '<<< Percorso cartella immagini
ActiveSheet.Pictures.Insert("H:\SOLE\Programmi SOLE srl\Preventivatori\Preventivatore FTV + AI\Preventivatore Rev 03 del 05 01 14\Schede tecniche\ImmStandard.jpg").Select '<<< Percorso cartella immagini + immagine per immagine mancante
Else
ActiveSheet.Pictures.Insert("H:\SOLE\Programmi SOLE srl\Preventivatori\Preventivatore FTV + AI\Preventivatore Rev 03 del 05 01 14\Schede tecniche\" & Cella.Text & ".jpg").Select '<<< Percorso cartella immagini
End If
Selection.Name = "FOTO_DA_" & Cella.Address(0, 0)
Selection.ShapeRange.Height = 1400 '<<< Altezza immagine
If Selection.ShapeRange.Width > 650 Then '<<< Larghezza immagine
Selection.ShapeRange.Width = 650 ' <<< Larghezza immagine
End If
'PER POSIZIONARE L'IMMAGINE
Selection.ShapeRange.Left = Cella.Offset(0, 1).Left '<<< Rientro immagine da sx
Selection.ShapeRange.Top = Target.Offset(0, 0).Top
Cella.Select
End If
Next Cella
End Sub