| | Post: 2 | Registrato il: 08/03/2017
| Città: MILANO | Età: 32 | Utente Junior | 2016 | | OFFLINE | |
|
08/03/2017 12:16 | |
Buongiorno,
ho letto diverse discussioni sulle varie importazioni d'immagini e devo dire che sono veramente ganze.
Ora l'idea che mi sono fatto é:
Ho un foglio di lavoro con diversi codici ~400 se inserisco l'immagine per ogni codice...temo diventi tutto troppo pesante.
Vorrei creare una finestra in un certo punto del foglio che visualizza l'immagine (preso atto che tutte le immagini siano .jpg, si chiamino esattamente come il codice selezionato e situate in una postazione specifica es. c:\foto ) della cella selezionata.
Alla fine sarebbe come l'anteprima di Windows.
Io creerei un nuovo Modulo immagine e la piazzerei dove voglio...però non so cosa scrivere per digli di puntare al file chiamato "cella selezionata"+.jpg nella famosa cartella foto.
Ho una mente un po intrigata...spero riusciate a capire cosa volevo dire.
Grazie mille...siete Fortissimi.
|
|
| | Post: 2.894 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Veteran | Excel 365 | | ONLINE |
|
08/03/2017 12:41 | |
Ciao Marco
Potresti provare con una macro di questo tipo
vb Sub InserisciImg()
Dim myPath As String
myPath = "c:\foto\"
Worksheets("Foglio1").Image1.Picture = LoadPicture(myPath & Range("a1").Value & ".jpg")
End Sub
Comunque se alleghi un file di esempio si può essere più precisi. [Modificato da alfrimpa 08/03/2017 12:42]
Alfredo |
| | Post: 2 | Registrato il: 08/03/2017
| Città: MILANO | Età: 32 | Utente Junior | 2016 | | OFFLINE | |
|
08/03/2017 13:47 | |
Praticamente vorrei che premendo in una qualsiasi delle celle colonna "A" mi compare nel riquadro apposito la foto associata (che è presente nella cartellina con il solito nome es. a.jpg b.jpg etc).
La macro che mi hai scritto se non la interpreto male legge la cella A1, ma io vorrei che fosse una funzione dinamica, cioè premendo o scorrendo la colonna A.. io mi vedo l'immagine associata.
Grazie mille per l'aiuto!!! |
| | Post: 2.896 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Veteran | Excel 365 | | ONLINE |
|
08/03/2017 14:15 | |
Prova con questa macro da inserire nel modulo di classe del foglio interessato
vb Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim ur As Long
Dim myPath As String
myPath = "c:\foto\"
ur = Cells(Rows.Count, 1).End(xlUp).Row
If Not Intersect(Target, Range("a1:a" & ur)) Is Nothing Then
Worksheets("Foglio1").Image1.Picture = LoadPicture(myPath & Target.Value & ".jpg")
End If
End Sub
Ti allego il file
Alfredo |
| | Post: 3 | Registrato il: 08/03/2017
| Città: MILANO | Età: 32 | Utente Junior | 2016 | | OFFLINE | |
|
08/03/2017 14:25 | |
alfrimpa, 08/03/2017 14.15:
Prova con questa macro da inserire nel modulo di classe del foglio interessato
vb Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim ur As Long
Dim myPath As String
myPath = "c:\foto\"
ur = Cells(Rows.Count, 1).End(xlUp).Row
If Not Intersect(Target, Range("a1:a" & ur)) Is Nothing Then
Worksheets("Foglio1").Image1.Picture = LoadPicture(myPath & Target.Value & ".jpg")
End If
End Sub
Ti allego il file
Poco da dire... ...è esattamente quello che cercavo.
Ora proverò ad inserirlo nel mio foglio.!!!
Grazie infinite.
|
| | Post: 4 | Registrato il: 08/03/2017
| Città: MILANO | Età: 32 | Utente Junior | 2016 | | OFFLINE | |
|
08/03/2017 14:29 | |
A questo punto per approfittarmene :P ... quando non trova l'immagine corrispondente da errore.
Aggiungerei che se non trova l'immagine o non selezioni nulla punta ad una immagine fissa "Es. workinprogess.jpg ".
Ancora grazie infinite.
|
| | Post: 2.897 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Veteran | Excel 365 | | ONLINE |
|
08/03/2017 15:32 | |
Prova così
vb Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim ur As Long
Dim myPath As String
myPath = "c:\foto\"
ur = Cells(Rows.Count, 1).End(xlUp).Row
If Not Intersect(Target, Range("a1:a" & ur)) Is Nothing Then
If Len(Dir(myPath & Target.Value & ".jpg")) = 0 Then
Worksheets("Foglio1").Image1.Picture = LoadPicture(myPath & "workinprogess.jpg")
Else
Worksheets("Foglio1").Image1.Picture = LoadPicture(myPath & Target.Value & ".jpg")
End If
End If
End Sub
Alfredo |
| | Post: 5 | Registrato il: 08/03/2017
| Città: MILANO | Età: 32 | Utente Junior | 2016 | | OFFLINE | |
|
08/03/2017 15:38 | |
Funziona :P !!!
Estrapolando da altre letture avevo risolto così:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim ur As Long
Dim myPath As String
myPath = "c:\Foto\"
ur = Cells(Rows.Count, 1).End(xlUp).Row
If Not Intersect(Target, Range("a1:a" & ur)) Is Nothing Then
If Dir(myPath & Target.Value & ".jpg") <> "" Then ' se la foto esiste
Worksheets("Foglio1").Image1.Picture = LoadPicture(myPath & Target.Value & ".jpg")
Else
Worksheets("Foglio1").Image1.Picture = LoadPicture(myPath & "workinprogress.jpg")
End If
End If
End Sub
Alla fine è la stessa soluzione :P !!!
Grazie per il supporto...assolutamente fondamentale!!. |
| | Post: 2.898 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Veteran | Excel 365 | | ONLINE |
|
08/03/2017 15:48 | |
Si
vb If Dir(myPath & Target.Value & ".jpg") <> "" Then
e
vb If Len(Dir(myPath & Target.Value & ".jpg")) = 0 Then
sono la stessa cosa.
Alfredo |
|
|