Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Esportare immagini in Excel

74 views
Skip to first unread message

franco...@gmail.com

unread,
Apr 22, 2020, 6:35:43 AM4/22/20
to
Salve a tutti,
ho la necessità di esportare una query di Access in Excel. Finora non ho avuto mai problemi, utilizzando il codice:

DoCmd.OutputTo acOutputQuery, "QueFirme", acFormatXLSX, , True

ora però tra i campi da esportare ce n'è uno che contiene un oggetto ole, un'immagine (la scansione di una firma), ma quando esporto la query il campo in Excel mi risulta vuoto.

Ho letto un articolo di Microsoft dove spiega come esportare i dati in Excel:
https://support.office.com/it-it/article/esportare-dati-in-excel-64e974e6-ae43-4301-a53e-20463655b1a9#top

dove dice che "Gli elementi grafici, ad esempio i logo, i contenuti dei campi Oggetto OLE e gli allegati inclusi nei dati di origine, non vengono esportati."

ma si riferisce all'esportazione da menu.

Non c'è un modo per esportare da VBA anche le immagini?
Tra l'altro la mia tabella contiene una sola riga, con il nominativo di chi firma e la sua firma scansionata.
Uso Access 2016 su Windows 10.

Grazie
Franco

BFS

unread,
Apr 22, 2020, 10:15:38 AM4/22/20
to
devi per forza salvarla in un campo ole la firma? non è pratica consigliata

se la salvi in un file immagine esternamente in una apposita cartella
tipo
c:\mieFirme\firma.png
ti propongo questa soluzione

sapendo che la firma è li e avendo la tua query una sola riga non serve
neppure esportare la query
se sai il nome della persona (esempio mario rossi) e il percorso della
firma (c:\miefirme\mariorossi.png)

con questo codice ottieni un foglio excel con nome e firma

Dim objExcel As Object
Dim objWorkbook As Object
On Error Resume Next
Set objExcel = GetObject(, "Excel.Application")
If Err.Number Then
Err.Clear
Set objExcel = CreateObject("Excel.Application")
If Err.Number Then
MsgBox "Can't open Excel."
End If
End If
objExcel.Visible = True
Set objWorkbook = objExcel.Workbooks.Add

objExcel.Cells(1, 1) = "Mario Rossi"
objExcel.activesheet.Pictures.Insert ("c:\miefirme\mariorossi.png")


...

ciao
BFS





@Alex

unread,
Apr 22, 2020, 2:08:46 PM4/22/20
to
Premetto che userei assolutamente la soluzione di BSF... però POTREBBE porre problemi o avere qualche limite.
Ovvero serve salvare in formato che supporta le macro, quindi XLSM w non XLSX, e serve che eventualmente, in caso di Sistema inserito in un network management, acconsenta l'uso di file con le macro..., purtroppo in diverse aziende strutturate mi è capitato di constatare che questoqnon era consentito... anche nel 2020.

Detto ciò... qui potresti avere un suggerimento di come fare l'export


https://stackoverflow.com/questions/18232987/export-pictures-from-excel-file-into-jpg-using-vba

https://www.mrexcel.com/board/threads/export-a-picture-on-a-worksheet-to-a-file.15584/

Saluti
@Alex

@Alex

unread,
Apr 22, 2020, 2:14:02 PM4/22/20
to
Rettifico solo per una precisazione... non sono certo che il File XLSX aperto via automazione possa supportare il codice... temo di no... da cui a questo punto l'obbligo di salvare in XLSM.

I LINK invece sono relativi all'esportazione da excel in quanto avevo frainteso l'origine...

@Alex

franco...@gmail.com

unread,
Apr 23, 2020, 3:42:11 AM4/23/20
to
Grazie ad entrambi per la risposta.
La soluzione dell'oggetto ole è stata scelta per semplicità, essendo solo una l'immagine.
In realtà l'esportazione in Excel mi serve perché poi l'utente userà tale elenco per eseguire una stampa unione. Finora non esisteva il campo "Firma", è stata una richiesta successiva del responsabile che deve firmare una mole considerevole di stampati.
Quindi il campo "Firma" è in un solo record di tabella, ma tramite query genero un elenco con numerosi records contenenti la firma. La richiesta dell'utente è quella di avere la firma su tutti i records dell'elenco, così da associare il relativo campo unione in Word.
Nella soluzione di BFS, dover verrebbe inserita l'immagine? E' possibile replicarla per n righe?
Saluti
Franco

BFS

unread,
Apr 23, 2020, 4:43:02 AM4/23/20
to
da quel che ne so, non essendo pratico di excel non puoi inserire una
immagine dentro una cella per avere la lista nome/immagine firma sulla
stessa riga. la puoi mettere nel foglio ed al massimo posizionare
tramite x/y

e anche se fattbile ho dubbi che poi la stampa unione te la mostri la firma

hai valutato di realizzare la stampa attualmente in word direttamente
come report access?

quando dici "è stata una richiesta successiva del responsabile che deve
firmare una mole considerevole di stampati."
se la firma è sempre la sua, non fai prima a metterla fissa nel foglio word?

BFS





franco...@gmail.com

unread,
Apr 24, 2020, 4:41:10 AM4/24/20
to
E' vero, le immagini in Excel non stanno dentro una cella, quindi quella via non é fattibile. Ho provato la stampa unione direttamente tra Word e Access, ma il campo della query contenente l'immagine restituisce in Word una stringa alfanumerica (151C1E00) e non l'immagine.
L'idea di inserire la firma scansionata direttamente in Word può andar bene, ma purtroppo in alcuni rari casi il firmatario non è sempre lo stesso, e la tabella Access delle firme può contenere anche due records.
Sto pensando anche a creare due documenti Word, uno con una firma e uno con l'altra, e trovare il modo di scegliere uno o l'altro a seconda del firmatario.
Ogni suggerimento è ben accetto.
Saluti
Franco

franco...@gmail.com

unread,
Apr 24, 2020, 4:46:22 AM4/24/20
to
Scusa, ho letto meglio il tuo suggerimento, tu parlavi di creare la stampa con un report di Access: potrebbe essere una soluzione, ma gli utenti sono abituati alla stampa unione, proverò a proporla come soluzione.
Saluti
Franco

BFS

unread,
Apr 24, 2020, 5:00:00 AM4/24/20
to
la trovo la soluzione ottimale che in più ti svincola dal avere word
installato nel PC

ad esempio io la uso su un software per un cliente che fa
formazione/sicurezza

a corso ultimato quando vanno stampati gli attestati un automatismo
legge il campo che contiene il nome del docente e carica nell'attestato
la relativa firma

tutti i docenti hanno dovuto semplicemente scansionare la loro firma in
una apposita cartella

nella tabella docenti ho quindi il nome del docente e il percorso di
dove si trova il file png della firma da caricare nell'attestato

BFS








0 new messages