Originariamente inviato da marcosx86
... il riferimento della cella non è più C35 ma diventa "immagine X" ...
Ciao,
questa frase mi stupisce perché, che io sappia, non c’è nessuna relazione fra gli oggetti, come le immagini, inseriti in un foglio excel e le celle del foglio.
Le immagini si pongono al di sopra delle celle e sono del tutto slegate da quelle quindi non si possono inserire immagini nelle celle e non si possono cancellare immagini cancellando il contenuto delle celle, perché sono entità diverse.
Questo, almeno, è ciò che risulta a me.
Tanto per verificare prova a inserire l’immagine, poi clicca su una cella libera e, utilizzando le freccette, porta la selezione sulla cella C35 e poi premi CANC.
Sul mio excel il risultato non è di eliminare l’immagine ma solo di cancellare un eventuale contenuto preesistente nella cella, non escludo però che con opportuni settaggi si possano collegare le immagini alle celle.
Per posizionare le immagini io utilizzo le proprietà Top e Left e per identificarle uso un indice progressivo oppure un nome.
Questo codice ad esempio inserisce e posiziona due immagini e assegna un nome alla seconda (ovviamente nulla vieta di chiamarla C35 se questo ti risulta comodo) :
codice:
Sub INSERT()
ActiveSheet.Pictures.INSERT("http:// ... /a.jpg").Select
ActiveSheet.Shapes(ActiveSheet.Shapes.Count).Top = 20
ActiveSheet.Shapes(ActiveSheet.Shapes.Count).Left = 50
ActiveSheet.Pictures.INSERT("http:// ... /b.jpg").Select
With ActiveSheet.Shapes(ActiveSheet.Shapes.Count)
.Name = "pippo"
.Top = 300
.Left = 50
End With
End Sub
Nota che ActiveSheet.Shapes.Count contiene il numero di immagini presenti nel foglio quindi ActiveSheet.Shapes(ActiveSheet.Shapes.Count) punta sempre all’ultima immagine e quindi si può usare subito dopo una insert per assegnare le proprietà all’immagine appena inserita.
Queste istruzioni invece permettono di eliminare la prima immagine della serie, l’ultima e quella che si chiama pippo:
codice:
ActiveSheet.Shapes(1).Delete
ActiveSheet.Shapes(ActiveSheet.Shapes.Count).Delete
ActiveSheet.Shapes("pippo").Delete