Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

Creare un immagine Active X che varia a seconda delle cella Selezionata.

Ultimo Aggiornamento: 08/03/2017 15:48
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!!! [SM=x423017]
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

Re:
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... [SM=x423047] ...è esattamente quello che cercavo.
Ora proverò ad inserirlo nel mio foglio.!!!
Grazie infinite.
[SM=x423028] [SM=x423030]
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 !!!
[SM=x423047] [SM=x423047] [SM=x423047]
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
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 12:33. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com