Condividi:        

Integrare Immagine in Excel (non "collegarla")

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Integrare Immagine in Excel (non "collegarla")

Postdi dipdip » 11/01/18 18:51

Buongiorno e buon anno a tutti!

Ho creato un file fattura dove chi lo compila deve inserire timbro e firma, opportunamente scansionati come file JPG e disponibili in locale o su un server. La macro che utilizzo e che è abbinata ad un pulsante apposito è la seguente:

Codice: Seleziona tutto
    ActiveSheet.Pictures.Insert("C:\Users\utente\Documents\Modelli\FirmaMP.jpg").Select
    Selection.ShapeRange.PictureFormat.TransparentBackground = msoTrue
    Selection.ShapeRange.PictureFormat.TransparencyColor = RGB(255, 255, 255)


Premetto che la macro non dà problemi, l'unico neo è che inserisce un link all'immagine e non l'immagine stessa. Per intenderci, se chiudo il file fattura e quindi rinomino il file immagine, alla prossima riapertura della fattura ottengo l'errore "Impossibile visualizzare l'immagine collegata... bla bla bla."

Qualcuno sa aiutarmi a caricare l'immagine effettiva e non il semplice collegamento?

Grazie mille!

dipdip
dipdip
Utente Junior
 
Post: 87
Iscritto il: 26/02/14 14:43

Sponsor
 

Re: Rimuovere link a immagine in file Excel

Postdi Zer0Kelvin » 11/01/18 19:26

dipdip ha scritto:Premetto che la macro non dà problemi, l'unico neo è che inserisce un link all'immagine e non l'immagine stessa. Per intenderci, se chiudo il file fattura e quindi rinomino il file immagine, alla prossima riapertura della fattura ottengo l'errore "Impossibile visualizzare l'immagine collegata... bla bla bla."
Ciao.
Non mi sembra un comportamento normale.
L'immagine dovrebbe venire inserita nel foglio ed essere disponibile alla riapertura del file.
Se invece è la macro che non trova più l'immagine da inserire, è un altro paio di maniche.
[Win7,Office2010]
Condividere la conoscenza aumenta la ricchezza di tutti(Z0°K)
Dai ad un uomo un pesce e lo avrai sfamato per un giorno;insegnagli a pescare e lo avrai sfamato per sempre(Confucio)
Il sonno della ragione genera mostri(Francisco Goya)
Avatar utente
Zer0Kelvin
Utente Senior
 
Post: 388
Iscritto il: 08/04/12 11:23

Re: Rimuovere link a immagine in file Excel

Postdi Anthony47 » 11/01/18 23:49

Da XL2010 il metodo "Insert" inserisce un collegamento all'immagine.
Usa invece il metodo "AddPicture" che consente sia di linkare o di integrare l'immagine.
Tipo
Codice: Seleziona tutto
Set CPic = ActiveSheet.Shapes.AddPicture("C:\Users\utente\Documents\Modelli\FirmaMP.jpg", FALSE, TRUE, PosizLeft, PositTop, True, True)


I parametri FALSE e TRUE indicano "integra l'immagine e salvala col file", seguono la posizione (PosizLeft, PositTop) e le dimensioni (Largh, Alt; True, True invece significano "dimensione originale")

Vedi come adattarla al tuo caso.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19480
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Rimuovere link a immagine in file Excel

Postdi Zer0Kelvin » 12/01/18 00:25

Da XL2010 il metodo "Insert" inserisce un collegamento all'immagine.
Usa invece il metodo "AddPicture" che consente sia di linkare o di integrare l'immagine.

Sembra che Excel si comporti stranamente al riguardo.
Se inserisco nel foglio un'immagine con Inserisci->Immagine, chiudo e salvo il file, cancello l'immagine e riapro il file, l'immagine è sempre lì.
Se invece registro la macro durante l'inserimento, cancello l'immagine dal foglio e poi reinserisco l'immagine tramite macro, l'immagine scompare.
:?: :?: :?:
[Win7,Office2010]
Condividere la conoscenza aumenta la ricchezza di tutti(Z0°K)
Dai ad un uomo un pesce e lo avrai sfamato per un giorno;insegnagli a pescare e lo avrai sfamato per sempre(Confucio)
Il sonno della ragione genera mostri(Francisco Goya)
Avatar utente
Zer0Kelvin
Utente Senior
 
Post: 388
Iscritto il: 08/04/12 11:23

Re: Integrare Immagine in Excel (non "collegarla")

Postdi Anthony47 » 12/01/18 01:34

Questo dimostra che il comando Inserisci /Immagine non e' la stessa cosa dell' istruzione vba Pictures.Insert

Semmai ci si potrebbe lamentare per il fatto che il registratore, a fronte del comando, generi la sequenza Pictures.Insert; ma ci sono anche sequenze che registrano codice che va in debug. Io comunque preferisco pensare alle migliaia di volte che il registratore ci semplifica la vita e ci mostra la strada...

Ne approfitto per correggermi: questo e' il comportamento da XL2007 in avanti (non XL2010)

Ciao!
Avatar utente
Anthony47
Moderatore
 
Post: 19480
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Integrare Immagine in Excel (non "collegarla")

Postdi Zer0Kelvin » 12/01/18 15:37

Non me ne stavo lamentando, sono solo stato tratto in inganno.
Oramai sono comunque abituato alle stranezze (vere o apparenti) di Excel.
Riguardo al Registratore di macro, è grazie ad esso che ho cominciato ad imparicchiare qualcosa di Excel.
Ancora adesso mi capita di usarlo per vedere come Excel esegue determinate operazioni che non mi era mai capitato di dover fare.
;)
[Win7,Office2010]
Condividere la conoscenza aumenta la ricchezza di tutti(Z0°K)
Dai ad un uomo un pesce e lo avrai sfamato per un giorno;insegnagli a pescare e lo avrai sfamato per sempre(Confucio)
Il sonno della ragione genera mostri(Francisco Goya)
Avatar utente
Zer0Kelvin
Utente Senior
 
Post: 388
Iscritto il: 08/04/12 11:23

Re: Integrare Immagine in Excel (non "collegarla")

Postdi dipdip » 15/01/18 11:29

Ciao, grazie a tutti.

Anthony, il tuo codice funziona ma non riesco a risolvere un paio di cose:
1) la posizione della firma varia da documento a documento, non è sempre fissa. Praticamente la mia necessità è puntare una cella e quindi lanciare la macro allineando l'immagine a quella stessa cella;
2) non riesco ad applicare la proprietà di trasparenza, immagino perché l'immagine non rimane selezionata. Ho provato ad aggiungere un .Select alla fine della tua istruzione ma va in debug.

Ho smanettato in rete ma non ho trovato soluzioni...

Dimenticavo: utilizzo Excel 2013.

Grazie.

dipdip
dipdip
Utente Junior
 
Post: 87
Iscritto il: 26/02/14 14:43

Re: Integrare Immagine in Excel (non "collegarla")

Postdi Anthony47 » 15/01/18 17:50

Avevo dimenticato di dirtelo, con Set CPic = Etc etc associ CPic all'immagine che viene caricata; puoi usare CPic come usavi Selection.ShapeRange.
Quanto alla posizione, devi solo dare un valore alle due variabili PosizLeft e PositTop.
Quindi, ad esempio:
Codice: Seleziona tutto
PosizLeft = Range("P5").Left        'Posiz sinistra
PositTop = Range("P5").Top          'Posiz top
Set CPic = ActiveSheet.Shapes.AddPicture("C:\Users\utente\Documents\Modelli\FirmaMP.jpg", FALSE, TRUE, PosizLeft, PositTop, True, True)

CPic.PictureFormat.TransparentBackground = msoTrue
CPic.PictureFormat.TransparencyColor = RGB(255, 255, 255)

CPic.LockAspectRatio = msoTrue      'Non distorcere
CPic.Width = Range("P5").Width      'Larghezza

Cosi' posizioniamo l'immagine in P5 e poi ne impostiamo la larghezza pari alla larghezza della cella, oltre a impostare il bianco come trasparente.
Altre impostazioni a piacere possono essere applicate con la stessa tecnica

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19480
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Integrare Immagine in Excel (non "collegarla")

Postdi dipdip » 23/01/18 17:13

Grazie Anthony, ho letto solo ora il messaggio perché non mi arrivano più le notifiche mail di nuovi post ... mistero.

Nei prossimi gg la provo e ti faccio sapere.

Buona serata!

dipdip
dipdip
Utente Junior
 
Post: 87
Iscritto il: 26/02/14 14:43

Re: Integrare Immagine in Excel (non "collegarla")

Postdi dipdip » 27/01/18 01:11

Perfetto come sempre Anthony, funziona egregiamente.

Grazie mille, ciao!

dipdip
dipdip
Utente Junior
 
Post: 87
Iscritto il: 26/02/14 14:43


Torna a Applicazioni Office Windows


Topic correlati a "Integrare Immagine in Excel (non "collegarla")":


Chi c’è in linea

Visitano il forum: Nessuno e 38 ospiti