Mail Merge şi nu numai

Mail Merge permite crearea mai multor scrisori, etichete, plicuri, ecusoane etc., folosind informații stocate într-o listă, o bază de date sau o foaie de calcul.

Chiar dacă numele instrumentului se referă la scrisori ("mail"), domeniul în care se poate folosi este mult mai vast - certificate, fişe de produs etc. (pe baza unei foi de calcul Excel și a unui şablon realizat în Word pot fi create în cateva minute sute de documente în Word).

Pe YouTube sunt diverse tutoriale video (în engleză și română) în care este descris modul de folosire al instrumentului Mail Merge.

Instrumentul poate fi folosit și la documente de același tip care se întocmesc (și se listează) periodic (fișe, rapoarte diverse, facturi): în foaia de calcul Excel se adaugă un rând cu noile valori, după care se generează noul document cu ajutorul șablonului din Word.

În plus, în foaia de lucru Excel rămâne o evidență clară (un centralizator) a documentelor listate, împreună cu valorile fiecărei poziții în parte.

De exemplu, valorile care se află pe fiecare rând din foaia de lucru Excel sunt preluate în Word acolo unde se dorește, pentru a genera un document nou, ca în imaginea de mai jos.

Mail Merge Excel Word

Pentru a lucra cu Mail Merge, este nevoie de:

- un document Word (unul existent sau unul nou) care va constitui şablonul documentului și

- o listă cu date diverse - un "centralizator" (în acest exemplu, un registru de lucru Excel) din care documentul Word extrage datele de pe fiecare rând și pe care le aşează în pagini, conform şablonului.

Word, cu ajutorul șablonului, preia valorile de pe fiecare rând din Excel și generează un document nou care conține mai multe secțiuni (departajate cu întreruperi de secțiune - section break).

În fiecare secțiune, există câte o copie a șablonului, care, în câmpurile din șablon, preia valorile corespunzătoare fiecărui rând din Excel.

Un posibil mod de lucru este descris mai jos:

1. Se alege un document Word deja completat, care va deveni documentul șablon. Aici se pot determina valorile care se modifică (provizoriu se pot formata cu culoare roșie, pentru a se identifica mai ușor).

2. În Excel se creează un tabel simplu, în care se vor completa (ca în figura de mai sus) datele care vor fi preluate în șablonul Word.

3. Apoi se deschide documentul care va deveni șablon creat la pasul 1 și se accesează instrumentul Step by Step Mail Merge Wizard..., aflat în eticheta Mailings, grupul Start Mail Merge.

Mail Merge

Step by Step Mail Merge Wizard conţine 6 etape, ca în imaginea de mai jos:

Etape Mail Merge

Etapa 1. Alegerea tipului de document care va constitui şablonul documentelor create ulterior (scrisoare, mesaje e-mail, plicuri, etichete, lista cu adrese). În acest caz se va alege "Letters".

Etapa 2. Alegerea documentului şablon - documentul curent, unul creat anterior sau unul din lista cu şabloane din Word. În exemplul nostru, șablonul este deja realizat și se alege opțiunea "Use the current document".

Etapa 3. Indicarea sursei de unde Word va prelua datele - o listă existentă, contactele din Outlook, o listă nouă sau un tabel/o bază de date. Aici se va alege "Use an existing list" și cu click pe butonul Browse se alege fișierul Excel care conține tabelul din care se vor prelua datele.

Etapa 4. Crearea/modificarea şablonului, cu adăugarea câmpurilor în locurile în care vor fi afişate datele preluate din fişierul sursă. Pentru introducerea "variabilelor" în documentul Word se poate folosi butonul Insert Merge Field din meniul Mailings, iar pentru previzualizarea rezultatului - butonul Preview Results.

Etapa 5. Previzualizarea documentelor care vor fi create.

Etapa 6. Generarea documentului

  • pentru toate înregistrările (opțiunea All),

  • pentru înregistrarea curentă (Current record) - cea care este afișată în Word în Preview Results sau

  • doar pentru câteva înregistrări, menționate în câmpurile From (de la) și To (până la).

Bara de instrumente Mail Merge din Word

Introducerea "variabilelor" în documentul Word: se selectează zonele (cuvintele) formatate cu roșu și se înlocuiesc cu câmpurile aflate în Insert Merge Field - care sunt, de fapt denumirile coloanelor din fișierul Excel.

Observație

La preluarea numerelor cu zecimale, Word afişează până la 17 zecimale, chiar dacă rezultatele preluate din Excel sunt rotunjite la două zecimale (folosind funcţia ROUND şi/sau formatarea la două zecimale).

De exemplu, în Excel se află o celulă în care se află o formulă: împarte valorile preluate din alte două celule 5 / 3, iar rezultatul preluat în Word este 1.6666666666666667

Pentru ca Word să afişeze mai puţine zecimale, trebuie modificat câmpul care preia valoarea din Excel:

- pe câmpul care afişează numere cu zecimale din Word, clic pe butonul dreapta al mouse-ului, apare meniul rapid din care se alege Edit Field

Modificare camp in Word

- este afișată fereastra Field - în partea stânga-jos a acesteia, clic pe Field Codes

Modificare camp in Word

- în caseta Advanced Field Properties, după MERGEFIELD NumeCâmp se adaugă caracterele \#,#0.00, pentru a indica Word-ului să preia doar două zecimale (în acest caz)

Modificare camp in Word

unde

\# marchează începutul "comutatorului" (“switch”) care indică documentului să aplice formatarea pentru acel câmp

, indică separatorul de mii (virgula, în engleză - dacă setările regionale ale sistemului de operare sunt EN; pentru RO, este punct)

# indică cifrele (#) care se află înaintea separatorului pentru zecimale (înaintea punctului pentru setări regionale în engleză)

0 pentru numere mai mici ca 1, se adaugă un zero în faţa separatorului de zecimale (altfel ar afișa de exemplu doar .35, fără zero)

.00 indică numărul de zecimale care vor fi incluse după separatorul de zecimale. Dacă nu sunt zecimale, este afișat 00.

O descriere succintă a câmpurilor şi a comutatorilor poate fi găsită aici.

Mail Merge mai are un inconvenient: toate paginile se află într-un singur document, despărţite între ele cu câte o întrerupere de secțiune (Section Break).

Pentru a crea documente separate extrase din documentul rezultat după operațiunea Mail Merge, există cel puțin două soluții:

A. cu aplicaţia MMtoDocs.exe care poate fi descărcată de pe pagina http://www.gmayor.com/individual_merge_letters.htm;

B. folosind o macrocomandă care identifică întreruperile de secţiune şi copie conţinutul dintre acestea în document nou.


După instalare, în panglica Word, la Mailings, este adăugată eticheta Individual Merge Letters.

Individual Merge Letters in Word

Cu click pe butonul Split the merge este afișată o fereastră cu două butoane-opțiuni: procesarea tuturor înregistrărilor sau doar a celor care urmează a fi selectate.

Individual Mail Merge

Apoi urmează o pagină cu informații pentru utilizator.

Mail Merge to Docs

În următoarea fereastră se pot alege:

- numele fișierelor, locația unde vor fi salvate și, în partea dreaptă, în lista orizontală care poate fi derulată cu click pe săgeţile stânga-dreapta

- formatul fișierelor în care vor fi exportate documentele (Output format)

- adăugarea unui câmp la numele fișierului (Additional Filename Field)

- anumite caractere care pot fi adăugate la fiecare nume al fișierului (Fixed Text)

- rulare macrocomandă înainte de a salva documentele individuale (Run a Macro).

Mail Merge to Docs

După click pe butonul Continue, este afișată o bară ca în imaginea de mai jos, care arată câte înregistrări au fost procesate.

Mail Merge to Docs

B. Macrocomandă pentru crearea de documente noi, extrase din documentul șablon

Notă: Cum am scris și mai sus, instrumentul Mail Merge generează un singur fișier care conține toate documentele, despărțite între ele de câte o întrerupere de secțiune. Este important să se știe că această macrocomandă (în forma ei originală) funcţionează corect numai în cazul în care întreruperile de secţiune separă doar documentele ce vor fi create (deci fără alte întreruperi de secţiune în cadrul aceluiaşi document).

De aceea, se recomandă ca documentul-şablon să nu aibă și alte întreruperi de secţiune. În locul acestora se pot introduce întreruperi de pagină (Page break) sau se poate forma textul ca să înceapă pe pagină nouă (opțiunea Page break before din fereastra de dialog Paragraph, secțiunea Line and Page Breaks).

Codul VBA este preluat de pe pagina http://wordribbon.tips.net/T008435_Merging_to_Individual_Files.html

Așa cum este scrisă macrocomanda de mai jos, cursorul trebuie să se afle în prima secțiune a documentului, altfel va prelua datele începând cu secțiunea curentă și când va ajunge la ultima secțiune, o va repeta de câte ori este nevoie, pentru a ajunge la numărul total de secțiuni din document.

(Acest lucru se poate rezolva și cu comanda Selection.HomeKey Unit:=wdStory, care se adaugă la începutul macrocomenzii.)

Sub BreakOnSection()

Dim i As Integer, DocNum As Integer

'folosit pentru a se deplasa in document

'de la o intrerupere de sectiune la alta

Application.Browser.Target = wdBrowseSection

'un document mailmerge se termina

'cu o intrerupere de sectiune de tip next page

'scaderea uneia din numarul total de

'intreruperi de sectiuni elimina mesajul de eroare

For i = 0 To ((ActiveDocument.Sections.Count) - 1)

'selecteaza si copie textul din respectiva

'sectiune in memoria clipboard

ActiveDocument.Bookmarks("\Section").Range.Copy

'creeaza un document nou in care adauga

'textul din memoria clipboard.

Documents.Add

Selection.Paste

'sterge intreruperea copiata la sfarsitul

'sectiunii, daca exista

Selection.MoveUp Unit:=wdLine, Count:=1, Extend:=wdExtend

Selection.Delete Unit:=wdCharacter, Count:=1

'se seteaza calea la folderul

'care va contine fisierele si numele

'fisierului incrementat cu 1 ...

'incepe cu test_1.doc..

'se poate alege si test_1.docx - extensia docX

ChangeFileOpenDirectory "C:\nume_folder\subfolder\"

DocNum = DocNum + 1

ActiveDocument.SaveAs FileName:="test_" & DocNum & ".doc"

ActiveDocument.Close

'muta selectia la urmatoarea sectiune din document

'si repeta operatiunea de mai sus

Application.Browser.Next

Next i

'inchide documentul sursa fara salvare

ActiveDocument.Close savechanges:=wdDoNotSaveChanges

End Sub

Chiar dacă datele preluate din Excel sunt afişate conform formatării din Word, se pot folosi şi comutatoare/ switch-uri pentru ca informaţia să fie afişată diferit (de exemplu, dacă un nume în Excel este scris cu litere mici, în Word fiecare nume să înceapă cu literă mare).

Acest lucru este posibil folosind comutatoarele (switches) care se aplică câmpurilor preluate din Excel.

O descriere pe scurt a câmpurilor din Word poate fi găsită aici.

Atunci când și documentul șablon conține întreruperi de secțiune (pentru modificări de antet, subsol și orientare pagină), macrocomanda nu mai poate fi folosită, deoarece va genera un document nou la fiecare întrerupere de secțiune. În acest caz, o soluție ar fi să se adauge un semn de carte (bookmark) la începutul documentului șablon, apoi să se folosească o macrocomandă asemănătoare celei de mai sus, care să nu caute întreruperi de pagină, ci semne de carte.

Deschiderea unui fișier-șablon

La deschiderea ulterioară a unui fișier-șablon Mail Merge în Word, este afișată o fereastră asemănătoare celei alăturate:

Interogare SQL in Word, Mail Merge

Altfel spus, la deschiderea fișierului-șablon, Word sesizează faptul că în document există câmpuri care preiau informația dintr-o altă sursă cu ajutorul unei comenzi SQL.

La click pe butonul Yes, Word caută și deschide fișierul din care preia datele.

Dacă nu găsește acel fișier (fişierul a fost mutat, redenumit etc.), afișează un mesaj de eroare, apoi o fereastră cu ajutorul căreia se poate indica adresa fișierului-sursă (Data Source):

Data source Word