Spesso mi viene chiesto di intervenire per sistemare i campi presenti in un documento di Stampa Unione di Word 2002/2003/2007 che ha come origine dati un foglio di Excel. Questo perchè l’utente si ritrova a non visualizzare nei campi unione in Word la stessa formattazione che aveva impostato in Excel, ad esempio per quanto riguarda date (04.10.1965 anzichè 10.04.1965), numeri (10.000000000002 anzichè 10.00), valute (125.342 anzichè Frs. 125.34), percentuali (0.076 anzichè 7.6%).
Il problema è dovuto al modo in cui Word 2002/2003/2007 stabilisce la connessione con Excel, ossia via ODBC; in questo modo viene preso solo il reale valore presente nella cella (vedi eempio della percentuale) e viene totalmente persa la formattazione presente in Excel.
Una soluzione è rappresentata dal modificare il codice del campo della stampa unione nel documento di Word, aggiungendo la formattazione desiderata (ad esempio per la data {MERGEFIELD \@ “dd.MMMM.yy”})
Chiaramente questa “modifca” non è così intuitiva e a volte di problematica attuazione per qualche utente.
Esiste in realtà un procedura più semplice che consente di mantenere le formattazioni del foglio Excel anche nei campi della stampa unione di Word, così come succedeva con la versione 2000. La soluzione è questa: dire a Word di collegarsi via DDE e non ODBC.
Prima di tutto si deve andare in Word e cambiare un’impostazione:
- Menù Strumenti -> Opzioni -> Scheda Standard
- Attivare la voce Conferma conversione all’apertura
In Office 2007:
- Pulsante Office -> Opzioni di Word -> Impostazioni Avanzate -> Sezione Generale
- Attivare la voce Conferma conversione all’apertura
A questo punto si può far partire la procedura di stampa unione e una volta scelta la cartella di Excel apparirà la finestra della conferma dell’origine dati nella quale si dovrà scegliere Fogli di lavoro di MS Excel via DDE.
In questo modo si manterrà nei campi unione in Word la formattazione dei dati che è stata impostata nelle relative celle di Excel.
Ulteriori informazioni sulla formattazione numerica dei dati nei campi unione di Word si possono trovare direttamente su Office Online ossia qui.
Informatics, ski racer, loves travels, Finland, Norway, mountains, squash, photography, Drones and RC Helicopter
grazie infinite!!!!!
Ottima indicazione, grazie.
Perchè quando metto in automatico la data corrente mi compare con formato e testo inglese? come faccio a trasformarla in automatico per tuttti i documenti in formato e testo italiano italiano?
Grazie
@emilio: quasi sicuramente dipende dall’impostazione della lingua, che non sarà impostata in italiano, del paragrafo in cui inserisci la data
Andrea L’articolo e molto interessante con molte informazioni utili, ma io ho sempre qualche problema.
Ho confermato la conversione all’apertura e … non ho risolto i miei problemi.
Ho cambiato MERGEFIELD PL1 in MERGEFIELD “PL1 [@ ##.##%]” per riportare un valore percentuale 53,05% anziché 0,530516778778. Cosa sbaglio?
grazie anticipato
Giuseppe
@Giuseppe: per la percentuale, se non ti funziona con l’opzione “Conferma conversione all’apertura” puoi fare così: aggiungi un campo nel documento (in Word 2003 tramite il comando Inserisci -> Campo – In Word 2007/2010 Scheda Inserisci -> Parti rapide -> Campo) e nella finestra che ti si apre all’inserimento del campo clicca su “Formula”. Quindi devi inserire la formula in questo modo: =Nome campo percentuale * 100 (nel tuo caso PL1 * 100) e scegliere il formato percentuale dall’elenco a discesa che permette di impostare il formato.
Andrea ti ringrazio per la disponibilità.
Ho provato seguendo alla lettera le tue indicazioni. Purtroppo non funziona e mi dice:
!PL1 non è nella tabella. Riproverò e ti farò sapere.
@Giuseppe: PL1 deve essere il nome della colonna che nella tabella Excel contiene il valore percentuale. Se effettivamente si chiama PL1 allora la formula sarà =PL1+100 con formato percentuale. Se visualizzi i dati uniti ti farà vedere il valore espresso nel formato percentuale.
Spero di non disturbarti, ma ti scrivo per chiederti un suggerimento per risolvere un piccolo problema nel ns. file .doc che usiamo per compilare gli ordini di acquisto tramite la funzione di stampa unione che legge i dati da un file elenco di origine dati excel.
Il problema è questo:
Nel file .doc un campo dati quando deve leggere dalla relativa cella di excel, (che è sempre formattata come “generale”), un numero, lo fa correttamente, ma quando sempre questa cella contiene un testo restituisce “0”.
Ultimamente il file elenco di origine di excel era ormai molto voluminoso e lo ho ridotto togliendo il 90% delle righe ed inserendole in un’ altro file di archivio. Da quel momento è comparso questo problema.
Ho provato a modificare il “campo problematico” nel file .doc, (contiene la funzione “mergefield”), ma non ho ottenuto nessun risultato.
Per favore quando avrai un pò di tempo se ti viene in mente qualche suggerimento prova a scrivermelo, penso che con le tue conoscenze e il tuo aiuto si potrebbe risolvere il problema.
Intanto grazie comunque e buona giornata.
Paolo Coppiardi
@Paolo: così diventa difficile capire qual’è il problema, se ti fosse possibile prova ad inviarmi per mail i due files ossia quello di word che ultilizzi per la stampa unione e il relativo file di excel con i dati. Così provo a dare un’occhiata.
Ciao Andrea ti ringrazio della disponibilità, Ti ho inviato i file e una spiegazione a: andrea@andreaperotti.ch.
Grazie comunque vada del tuo aiuto e della disponibilità.
Paolo
Ciao.
Non riesco ad importare in word una cella unita di Excel
La cella di Excel si compone di diverse righe (nello specifico)
03/04 → 23/04
02/05 → 07/06
07/09 → 30/09
ma solo la prima viene importata
in alternativa come è possibile importare da Excel diverse righe di una stessa colonna nello stesso campo di word ? (vedi sopra)
Ciao e grazie
Salve, problema come Coppiardi
Nel file .doc un campo SP, quando legge dalla relativa cella di excel, (che è sempre formattata come “testo”), un numero, lo fa correttamente, ma quando sempre questa cella contiene un testo (esempio 186 var) restituisce “0″.
sono disperato!!!
@Lorenzo: assicurati che, nel file Excel, tutta la colonna che contiene i valori alfanumerici sia effettivamente formatta come testo. Altrimenti prova a imporre tu la formattazione in Excel e dovrebbe funzionare.
ciao,
volevo sottoporre alla tua attenzione questo caso.
nella stampa unione ho i campi con la seguente formattazione: \@ “dd/MM/yyyy”.
Tuttavia facendo la stampa e unione la data del 11-mar-2014 la trasforma in 03/11/2013 e la data 29-lug-2014 in 29/07/2014.
Ovvero in un caso funziona e nell’altro no. come mai?
Grazie
sei meglio della microsoft
ciao,
ho inserito una query in word per importare (stampa unione) da un file excel solo i records di una colonna >0 dato che senza me ne carica 99 (?), anche quelli con campi vuoti
una volta inserita la query carica tutto regolare.
quando però salvo e rientro la query è da rifare, non la memorizza nel file.
si può far si che la procedura si ripeta in automatico alla apertura del file ?
.. grazie
ciao Andrea,
ho formattato in excel diverse colonne per DATA; in word su STAMPA UNIONE tutte le colonne tranne una vengono convertite perfettamente. Una sola mi riporta la conversione in TESTO (5 numeri).
Ho provato e riprovato a controllare la formattazione ma non ne vengo a capo.
grazie
Carmelo