Bloccare immagine in cella excel
Hai un problema con Excel? 
Bloccare immagine in cella excel
di Gabriela (utente non iscritto) data: 07/03/2017 13:42:33
Buongiorno,
devo realizzare un listino con codice prodotto, prezzo, foto e riferimento alla pagina del catalogo cartaceo.
Ho una macro che mi permette di inserire nella cella accanto al nome prodotto l'immagine.
Mi resta però un problema: se utilizzo i filtri di excel per fare un ordinamento o per visualizzare solo parte del listino, mi ritrovo le foto dei prodotti non inclusi nel filtro accatastate tutte nell'ultima riga!
Come posso fare per risolvere questo problema?
Esiste un modo per bloccare l'immagine nella cella e, quindi, nasconderla quando la riga in cui è contenuta non è visualizzata?
questo è il codice che utilizzo per caricare le foto:
Sub InsImg()
Application.ScreenUpdating = False
ActiveSheet.Shapes.SelectAll
Selection.Delete
mPath = ActiveWorkbook.Path
r = 2 ' riga inizio prodotti
Lr = Range("A" & Rows.Count).End(xlUp).Row ' ultima riga da analizzare
For i = r To Lr
mFoto = Cells(i, 1)
If Len(mFoto & "") <> 0 Then ' se c'e' il nome prodotto
If Dir(mPath & "" & mFoto & ".jpg") <> "" Then ' se la foto esiste
' inserisce foto e adatta a dimensioni cella/colonna B
With ActiveSheet.Pictures.Insert(mPath & "" & mFoto & ".jpg")
'NOTA: in blu per centrare la foto nelle celle (puoi ovviamente variare), altrimenti vengono una attaccata all'altra
.Top = Range("B" & i).Top + 5
.Left = Range("B" & i).Left + 5
.Height = Range("B" & i).Height - 10
.Width = Range("B" & i).Width - 10
End With
End If
End If
Next i
Application.ScreenUpdating = True
End Sub
|
di alfrimpa data: 07/03/2017 14:03:09
Ciao Gabriela
Mi auguro tanto di sbagliarmi ma penso che quello che hai chiesto non sia possibile.
Le immagini sono "oggetti" avulsi dal foglio ossia non sono direttamente collegate ad una cella o ad una riga per cui se filtri dei dati quelle collegate a righe non visualizzate non scompaiono ma si sovrappongono.
In ogni caso se puoi allegare un file di esempio con pochi record e relative immagini vediamo quello che si può fare.
Alfredo
di Gianfranco data: 07/03/2017 15:42:00
di Gianfranco data: 07/03/2017 15:49:34
Ciao
vai nella proprietà dell'immagine
e seleziona
sposta e ridimensiona con la cella
ed è fatto
nella macro bisogna inserire
xxxxxx.Placement = xlMoveAndSize
ma non mi ricordo come fare
A esperti vba la palla
di alfrimpa data: 07/03/2017 16:26:58
Gianfranco credo che la macro serva solo ad inserire le immagini.
Quando si applica il filtro dovrebbe bastare il tuo primo suggerimento
Alfredo
di Gianfranco data: 07/03/2017 16:30:05
ciao
ti ho fregato sul tempo
prova
Sub InsImg()
Application.ScreenUpdating = False
ActiveSheet.Shapes.SelectAll
Selection.Delete
mPath = ActiveWorkbook.Path
r = 2 ' riga inizio prodotti
Lr = Range("A" & Rows.Count).End(xlUp).Row ' ultima riga da analizzare
For i = r To Lr
mFoto = Cells(i, 1)
If Len(mFoto & "") <> 0 Then ' se c'e' il nome prodotto
If Dir(mPath & "" & mFoto & ".jpg") <> "" Then ' se la foto esiste
' inserisce foto e adatta a dimensioni cella/colonna B
With ActiveSheet.Pictures.Insert(mPath & "" & mFoto & ".jpg")
'NOTA: in blu per centrare la foto nelle celle (puoi ovviamente variare), altrimenti vengono una attaccata all'altra
.Top = Range("B" & i).Top + 5
.Left = Range("B" & i).Left + 5
.Height = Range("B" & i).Height - 10
.Width = Range("B" & i).Width - 10
.Placement = xlMoveAndSize
End With
End If
End If
Next i
Application.ScreenUpdating = True
End Sub |
di Gianfranco data: 07/03/2017 16:31:08
ho inserito solo
.Placement = xlMoveAndSize
e funziona bene almeno con le tre immagini a disposizione
altrimenti bisogna farlo a mano
FUNZIONA!!!!
di Gabriela data: 08/03/2017 10:43:37
Siete grandi!!!!
Funziona perfettamente, ho solo dovuto cambiare qualche parametro per centrare meglio la foto nella cella, ma funziona perfettamente!
....ancira grazie!
Vuoi Approfondire?