View Full Version : Macro stampa unione per creazione word: spariscono immagini
Ciao,
da un file excel ho fatto una stampa unione su un file word; mi ritrovo ora con un word con svariate "lettere", ciascuna di queste con più pagine. Il mio obiettivo è quello di salvare un file word per ciascuna lettera e ci sono riuscito con la macro sotto. Il problema è che non mi salva le immagini che invece escono perfettamente nel file di stampa unione. Nei file creati è tutto ok, sia la posizione nel disco, il nome del file, il testo è ok, le foto nella loro posizione, ma... non ci sono :( al loro posto un riquadro con scritto "non è possibile visualizzare l'immagine collegata etcetc"
la macro è questa, vedete per caso errori?
Public StampaWord()
On Error GoTo ErrH
Dim objWdMailMerge As Word.MailMerge
Dim lngRecNum As Long
Dim strPath As String
Dim strFilename As String
Application.ScreenUpdating = False
strPath = "C:\Users\NOME UTENTE\CARTELLA DI DESTINAZIONE"
Set objWdMailMerge = ThisDocument.MailMerge
With objWdMailMerge
.Destination = wdSendToNewDocument
With .DataSource
.ActiveRecord = wdLastRecord
lngRecNum = .ActiveRecord
.ActiveRecord = wdFirstRecord
Do
.FirstRecord = .ActiveRecord
.LastRecord = .ActiveRecord
strFilename = .DataFields("xy").Value
If Len(strFilename) Then
strFilename = strPath & strFilename
objWdMailMerge.Execute
With ActiveDocument
.SaveAs strFilename, wdFormatdoc, AddToRecentFiles:=False
.Saved = True
.Close
End With
End If
If .ActiveRecord = lngRecNum Then Exit Do
.ActiveRecord = wdNextRecord
Loop
End With
End With
ExitProc:
Application.ScreenUpdating = True
Set objWdMailMerge = Nothing
Exit Sub
ErrH:
MsgBox Err.Description
Resume ExitProc
End Sub
Grazie!
Raffaele53
07-01-2021, 15:51
Il VBA parla solo di Mail. Suggerisco di ricercarTi un Forum Excel, dove avrai "molte risposte" (certo che non bastano solo le 2 righe di info)
Il VBA parla solo di Mail. Suggerisco di ricercarTi un Forum Excel, dove avrai "molte risposte" (certo che non bastano solo le 2 righe di info)
perchè excel? è una macro su word. Ho modificato il primo post sperando sia più chiaro
Raffaele53
07-01-2021, 17:30
Sicuramente ho sbagliato, MailMerge credo sia un semplice "incolla pezzo" di testo. Conosco stampa-unione tra Excel&Word, invece non sono capace solo con WORD. Casomai sarà un forum Word
Sicuramente ho sbagliato, MailMerge credo sia un semplice "incolla pezzo" di testo. Conosco stampa-unione tra Excel&Word, invece non sono capace solo con WORD. Casomai sarà un forum Word
la stampa unione è tra excel e word, ma il problema mi si presenta dopo, quando dal word creato voglio salvare i singoli fogli sempre in word (mi servono in word perchè devono essere caricati su un programma).
Su questo forum c'è una pagina dedicata ad excel, ma non a word, quindi l'ho scritto qui e spero che qualcuno mi possa aiutare visto che il forum è frequentato da gente esperta, non vedo perchè dovrei cercare altri forum
Raffaele53
08-01-2021, 10:27
Il problema che avendo riunito tutte le domande in un'unico "post Excel/Word" non si può ricercare se qualcuno a già trattato l'argomento. Per Te ci vuole un "post dedicato" (come questo, se gli amministratori permettono), nel quale dovrai allegare i file Excel + Word ed inoltre dovrai fornire diverse altre informazioni. Per quanto abbia capito Excel crea la stampa unione, sarà Excel che deve sostituire i Dati & Foto nella pagina Word (casomai salvare ogni pagina se desideri). Prova ad allegarli che gli dò un'occhiata
Edit: Estraendo in C:\ questo esempio, dopo aver premuto "finalizza & unisci", torni in StampaUnione.docm ed avvia il codice
http://www.filedropper.com/word-text
Il problema che avendo riunito tutte le domande in un'unico "post Excel/Word" non si può ricercare se qualcuno a già trattato l'argomento. Per Te ci vuole un "post dedicato" (come questo, se gli amministratori permettono), nel quale dovrai allegare i file Excel + Word ed inoltre dovrai fornire diverse altre informazioni. Per quanto abbia capito Excel crea la stampa unione, sarà Excel che deve sostituire i Dati & Foto nella pagina Word (casomai salvare ogni pagina se desideri). Prova ad allegarli che gli dò un'occhiata
Edit: Estraendo in C:\ questo esempio, dopo aver premuto "finalizza & unisci", torni in StampaUnione.docm ed avvia il codice
http://www.filedropper.com/word-text
Ho fatto la prova, ma non mi cambia l'immagine però e non sembra pescarla dalla cartella ma è fissa, cosa sbaglio?
questo il mio tentativo con il "mio" codice e metodo e il risultato nei file creati (senza immagine)
da estrarre in C:\
http://www.filedropper.com/fotopezzi
Raffaele53
01-02-2021, 15:49
Tu sai che per la prima volta che si apre sul PC, sul files Word devi premere "NO" + LETTERE + Seleziona Destinatari e trovare il files Excel?
Salvi e poi premi SVILUPPO ed avvii il codice
Comunque ho cambiato DOC_ + inserito una riga (come dall'esempio) e funziona. L'unico particolare che forse non gli piaceva la cartella "foto pezzi" ed inoltre per Word2013 si scrive con doppi \\ ex C:\\Stampa\\Foto\\
http://www.filedropper.com/stampa_4
Tu sai che per la prima volta che si apre sul PC, sul files Word devi premere "NO" + LETTERE + Seleziona Destinatari e trovare il files Excel?
Salvi e poi premi SVILUPPO ed avvii il codice[/url]
Certo che lo so, altrimenti non ti lascia nemmeno muoverti tra le lettere e cmq confermo che l'immagine non cambiava, cambiava si il testo, ma non l'immagine.
Comunque ho cambiato DOC_ + inserito una riga (come dall'esempio) e funziona. L'unico particolare che forse non gli piaceva la cartella "foto pezzi" ed inoltre per Word2013 si scrive con doppi \\ ex C:\\Stampa\\Foto\\
http://www.filedropper.com/stampa_4
funziona! Il problema sembrano essere gli spazi nel nome della cartella, com'è possibile? Ho fatto le prove anche sul desktop, quindi cambiando posizione, e funziona, ma appena metto un nome cartella con lo spazio poi la macro non mi stampa le immagini. E questo sarebbe un problema perchè il mio era un file esempio, ma lo devo usare x lavoro in un percorso che non posso modificare.
- la parte "doc_" era la prima parte fissa del file divisa da quella variabile dalla linea
- Le doppie \\ avevo visto, ma avendo io il 2019 a me funziona anche con una
Raffaele53
02-02-2021, 08:25
Non hai detto se Ti servono dei DOC obbligatoriamente, magari dei PDF (più leggeri)? Le foto sono tutte *.JPG? Tutte le foto sono nella stessa cartella (oppure sono sparse in diverse cartelle)?
Di norma un percorso di rete è simile a \\Server Aziendale\Word\Stampa Unione\FileWord.docm... (puoi descriverLo)? Le foto sono tutte in ex \\Server Aziendale\Foto (oppure in diverse sottocartelle di Word)?
Non hai detto se Ti servono dei DOC obbligatoriamente, magari dei PDF (più leggeri)? Le foto sono tutte *.JPG? Tutte le foto sono nella stessa cartella (oppure sono sparse in diverse cartelle)?
Di norma un percorso di rete è simile a \\Server Aziendale\Word\Stampa Unione\FileWord.docm... (puoi descriverLo)? Le foto sono tutte in ex \\Server Aziendale\Foto (oppure in diverse sottocartelle di Word)?
rispondo:
- mi servono obbligatoriamente .doc per caricarli in software (ma ho già cambiato la macro che me li faceva .docx). (eventualmente per la stampa in pdf, le modifiche sulla macro sono complicate? o basta cambiare le righe dove c'è il riferimento al file d'uscita?)
- le immagini sono tutti loghi/intestazioni/firme, il formato posso adattarlo
- sono tutte nella stessa cartella
- percorso: server\cartella\cartella\cartella\cartelle finali per organizzare le varie versioni (immagini comunque tutte in una cartella unica tra le "cartelle finali"). Nel percorso la prima cartella ha spazi e non posso ovviamente modificarla a mio piacimento, le altre volendo si
Raffaele53
02-02-2021, 16:13
Usando il mio metodo con \\ e nella directory del file StampaUnione.docm, tre sottocartelle Doc, Foto, Pdf
Rimesso come prima "foto pezzi" con spazio, ho cambiato solo wdFormatdoc in wdFormatDocument e funziona in Word2013. Non riesco togliere lo sfarlallio del monitor dei file creati.
Usando il mio metodo con \\ e nella directory del file StampaUnione.docm, tre sottocartelle Doc, Foto, Pdf
Rimesso come prima "foto pezzi" con spazio, ho cambiato solo wdFormatdoc in wdFormatDocument e funziona in Word2013. Non riesco togliere lo sfarlallio del monitor dei file creati.
Ci siamo quasi....
io ho usato il tuo stampaunione nella mia cartella in c, non ho fatto nessuna modifica (ovvero nemmeno dove scrivi di mettere a posto le directory) e... funziona tutto!!
ho ricreato tutto nel pc di lavoro (non posso inviarmi il file con le macro) sempre su c e lì non va, mi dice "chiamata di routine o argomento non validi" e purtroppo non so cosa voglia dire
Ci siamo quasi....
io ho usato il tuo stampaunione nella mia cartella in c, non ho fatto nessuna modifica (ovvero nemmeno dove scrivi di mettere a posto le directory) e... funziona tutto!!
ho ricreato tutto nel pc di lavoro (non posso inviarmi il file con le macro) sempre su c e lì non va, mi dice "chiamata di routine o argomento non validi" e purtroppo non so cosa voglia dire
rettifico.... in parte :p
ok, così com'è funziona, non avevo rispettato il maiuscolo/minuscolo qui:
strFilename = .DataFields("PERCORSO").Value & .DataFields("FOTO").Value 'aggiunto il PERCORSO
sName = .DataFields("FOTO").Value 'aggiunta
ora però io vorrei cambiare il nome finale del file, quindi ho scritto al posto di "foto" un altro campo della tabella e mi da l'errore citato sopra "chiamata di routine o argomento non validi", cosa sbaglio?
Sto provando già sul mio file e in realtà se metto i due riferimenti a percorso e foto (hanno nomi diversi), funziona, ma appena metto due altri riferimenti, no.
Ma direi che ci siamo
Raffaele53
06-02-2021, 14:30
Per evitare le Maisc/Minus puoi mettere in 1° riga, Option compare text
>>>ora però io vorrei cambiare il nome finale del file
Dimmi a quale "Campo Unione" Ti riferisci (l'hai inserito in Word?, è presente in Excel?). In teoria prima di >>>With ActiveDocument puoi cambiargli il nome con sName = ?????+estenzione
La prossima volta, invece d'avviare il codice, premi "esegui istruzione", una riga alla volta premi F8 e dimmi in quale riga ti dà l'errore
strFilename = .DataFields("PERCORSO").Value & .DataFields("FOTO").Value 'aggiunto il PERCORSO
sName = .DataFields("FOTO").Value 'aggiunta
ammetto di non aver ben capito il significato delle due righe. In ogni caso se al posto di "percorso" e al posto di "foto", metto i corrispondenti del mio file, funziona e stampa e si vedono le immagini. Se invece cambio solo "foto" che mi pare di capire essere il nome del file e metto il riferimento di un'altra cella (non usata nella stampa unione di word), mi da errore e non stampa
Raffaele53
09-02-2021, 14:01
Se non dici quale "nome" desideri dare, come faccio aiutarTi?
>>>Dimmi a quale "Campo Unione" Ti riferisci (l'hai inserito in Word?, è presente in Excel?)
Excel: Ex in colonna E hai dei nomi con l'Intestazione=NOME
In Word "inserisci campo unione" = Nome. Nel codice subito sotto
objWdMailMerge.Execute
sName = .DataFields("NOME").Value
Salvi Word
Avrai spostato l'esempio, mà non spieghi come vorresti "nominarlo", più di questo non sò cosa fare
Se non dici quale "nome" desideri dare, come faccio aiutarTi?
avevo risposto in realtà. Come hai ben compreso, voglio dare semplicemente il nome di un'altra colonna di excel, quindi anzichè la colonna "foto" la colonna "paperino"; ho quindi sostituito sulla macro "foto" con "paperino" così:
strFilename = .DataFields("PERCORSO").Value & .DataFields("PAPERINO").Value
sName = .DataFields("PAPERINO").Value
ma non va e mi da questo errore "chiamata di routine o argomento non validi", cambio semplicemente quella parola. Se riscrivo le due predefinite, va.
ho creato un file con più campi che allego. Così va, se metto un altro campo no, ma è ovvio che sbaglio qualcosa, ma non capisco cosa.
http://www.filedropper.com/provelettere_1
Raffaele53
11-02-2021, 20:57
Mi sapresti spiegare, perchè nel files WORD (ci sono due pagine) ???
Mi sapresti spiegare, perchè il files Excel sia un XLSM?
Scritto nel post 06-02-2021, ridetto nel post il 09-02-2021
Mi Sai dire ( Con quale CAMPO desideri rinominare i file ??? )
Forse desideri rinominare IMG "ciao.jpg" con FOTO2 "meteo.jpg" ??? ***
Hai inserito nel documento "WORD" il campo unione FOTO2 = colonna "I" ???
Se fosse vero quanto ho scritto. WORD, credo si rifiutti quando trova alcuni "caratteri strambi" (presumo siano il punto + l'estenzione)
Il Tuo ultimo allegato, in EXCEL (PER & IMG = colonne "F/G") sono OK
Nel caso di CAMPO1, CAMPO2, CAMPO3, CAMPO4, CAMPO5, CAMPO8 (come scritto sopra)
*** = Nel caso di FOTO2 "meteo.jpg", passo la parola agli esperTi, i nomi dei files "estratti" verrebbero storpiati
Mi sapresti spiegare, perchè nel files WORD (ci sono due pagine) ???
Mi sapresti spiegare, perchè il files Excel sia un XLSM?
- nei file che devo fare le pagine sono anche 5/6, ma non credo sia un problema, visto che funziona
- è xlsm per abitudine, uso spesso le macro in excel, ma anche in questo caso, funziona.
Scritto nel post 06-02-2021, ridetto nel post il 09-02-2021
Mi Sai dire ( Con quale CAMPO desideri rinominare i file ??? )
Forse desideri rinominare IMG "ciao.jpg" con FOTO2 "meteo.jpg" ??? ***
non riesco a dirti con quale campo, perchè questi sono file esempio, quelli che userò sono più complessi, con più colonne, più campi, etc etc. Pensavo bastasse sostituire il riferimento per nominarlo in altro modo? se capisco come funziona poi faccio da solo senza disturbare
Hai inserito nel documento "WORD" il campo unione FOTO2 = colonna "I" ???
Se fosse vero quanto ho scritto. WORD, credo si rifiutti quando trova alcuni "caratteri strambi" (presumo siano il punto + l'estenzione)
Il Tuo ultimo allegato, in EXCEL (PER & IMG = colonne "F/G") sono OK
Nel caso di CAMPO1, CAMPO2, CAMPO3, CAMPO4, CAMPO5, CAMPO8 (come scritto sopra)
*** = Nel caso di FOTO2 "meteo.jpg", passo la parola agli esperTi, i nomi dei files "estratti" verrebbero storpiati
Qui i campi sono abbastanza casuali, era giusto per creare un file più simile al mio, poi se c'è una soluzione alternativa posso sempre adattarmi.
cmq grazie intanto
Raffaele53
12-02-2021, 18:29
L'allegato dell'ultimo post è errato (c'era un errore riguardo i nomi)
Per me in Excel, mancano le due \\ finali = C:\\prove lettere\\Foto\\
L'allegato dell'ultimo post è errato (c'era un errore riguardo i nomi)
Per me in Excel, mancano le due \\ finali = C:\\prove lettere\\Foto\\
azzolina me l'hai complicata, ora devo impegnarmi per capire come funziona :doh:
domani che sono più sveglio provo
L'allegato dell'ultimo post è errato (c'era un errore riguardo i nomi)
Per me in Excel, mancano le due \\ finali = C:\\prove lettere\\Foto\\
ho provato sul mio file e funziona perfettamente! devo ancora fare le prove su quello ufficiale, ma le premesse mi sembrano ottime.
Ho provato a smanettare un po' sulla macro, ho tolto questa riga:
strFilename = .DataFields("PERC").Value & .DataFields("IMG").Value
e funziona ugualmente.
A cosa serviva che non capisco?
Grazie
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.