Generarea unor pagini word folosind date din excel.
Buna seara.
Am un document excel care contine (simplificat urmatoarele coloane)
nr. crt | nume | clasa |
Populat ar fi ceva de genul:
1 | Popescu | 12 A
2 | Iliescu | 12 C
3 | Marinescu | 12 A
.......
Nr de elevi pentru fiecare clasa este variabil (nu este acelasi pentru toate clasele)
Plecand de la acest fisier excel doresc sa generez un document word in care pentru fiecare clasa sa am cate o pagina cu elevii din acea clasa:
Pagina 1:
.............................
Text introductiv
...........................
Clasa: 12 A
nr. Crt | Nume
1 | Popescu
2 | Marinescu
Pagina 2:
.............................
Text introductiv
...........................
Clasa: 12 C
nr. Crt | Nume
1 | Iliescu
Deci pentru fiecare clasa trebuie generat un tabel cu numele elevilor
Este posibil asa ceva fara VB?
Eu am lucrat cu letters dar acolo afisam pe fiecare linie tot ce gaseam pe o linie in excel. Acum trebuie si o filtrare inainte
Multumesc.
Am atasat si fisiere ca exemplu dar cred ca am prezentat destul de clar.
Multumesc.
Am un document excel care contine (simplificat urmatoarele coloane)
nr. crt | nume | clasa |
Populat ar fi ceva de genul:
1 | Popescu | 12 A
2 | Iliescu | 12 C
3 | Marinescu | 12 A
.......
Nr de elevi pentru fiecare clasa este variabil (nu este acelasi pentru toate clasele)
Plecand de la acest fisier excel doresc sa generez un document word in care pentru fiecare clasa sa am cate o pagina cu elevii din acea clasa:
Pagina 1:
.............................
Text introductiv
...........................
Clasa: 12 A
nr. Crt | Nume
1 | Popescu
2 | Marinescu
Pagina 2:
.............................
Text introductiv
...........................
Clasa: 12 C
nr. Crt | Nume
1 | Iliescu
Deci pentru fiecare clasa trebuie generat un tabel cu numele elevilor
Este posibil asa ceva fara VB?
Eu am lucrat cu letters dar acolo afisam pe fiecare linie tot ce gaseam pe o linie in excel. Acum trebuie si o filtrare inainte
Multumesc.
Am atasat si fisiere ca exemplu dar cred ca am prezentat destul de clar.
Multumesc.
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.
Re: Generarea unor pagini word folosind date din excel.
Un sfat va rog.
Re: Generarea unor pagini word folosind date din excel.
Salut,
Eu nu cred ca se poate fara cod VBA. Se poate face o filtrare a elevilor, functie de clasa (cu formule sau filtrarile native ale Excelului) si se pot pune in foi separate, dar de aici "trecerea" in Word nu cred ca se poate fara ajutorul unui macro. Macro care va putea crea un fisier word si copia aici acele date.
Eu nu cred ca se poate fara cod VBA. Se poate face o filtrare a elevilor, functie de clasa (cu formule sau filtrarile native ale Excelului) si se pot pune in foi separate, dar de aici "trecerea" in Word nu cred ca se poate fara ajutorul unui macro. Macro care va putea crea un fisier word si copia aici acele date.
Apropo... Ce este acel "letters"? cu care ati lucrat.Eu am lucrat cu letters dar acolo afisam pe fiecare linie tot ce gaseam pe o linie in excel. Acum trebuie si o filtrare inainte
-
- Moderator
- Mesaje:4570
- Membru din:Vin Iul 31, 2009 7:32 am
Re: Generarea unor pagini word folosind date din excel.
Se poate si fara VBA... doar ca trebuie muuuulta rabdare si atentie. Instructiuni detaliate ai aici: HOW TO: Use Mail Merge to Create a List Sorted by Category in Word 2000 si iti recomand a repeti exemplul de acolo fix cu datele de acolo pana iti iese ca sa intelegi structura si apoi sa treci la exemplul tau cu clasele... oricum totul se va intampla in Word, Excelul il vei folosi doar sa pui CLASA pe prima coloana si sa sortezi tot tabelul in functie de aceasta (ca sa iti iasa).
In plus vezi si exemplul dat de Catalin aici: Re: scrisori circulare celule combinate.
In plus vezi si exemplul dat de Catalin aici: Re: scrisori circulare celule combinate.
Re: Generarea unor pagini word folosind date din excel.
Se pot pune auromat foi separate?Indigo scrie:Salut,
se pot pune in foi separate
era vorba de scrisori.Indigo scrie: Apropo... Ce este acel "letters"? cu care ati lucrat.
Cu VBA este complicat de facut ce doresc eu?
O sa incerc si ce mi-a recomandat dr. Windows doar ca in acele exemple ei nu folosesc tabel si nu stiu cum pot adauga cate o linie noua in tabel.
Credeti ca se poate si cu tabel?
Multumesc.
Re: Generarea unor pagini word folosind date din excel.
Am incercat acel exemplu dar nu imi iese deloc.Dr.Windows scrie:Se poate si fara VBA... doar ca trebuie muuuulta rabdare si atentie. Instructiuni detaliate ai aici: HOW TO: Use Mail Merge to Create a List Sorted by Category in Word 2000 si iti recomand a repeti exemplul de acolo fix cu datele de acolo pana iti iese ca sa intelegi structura si apoi sa treci la exemplul tau cu clasele... oricum totul se va intampla in Word, Excelul il vei folosi doar sa pui CLASA pe prima coloana si sa sortezi tot tabelul in functie de aceasta (ca sa iti iasa).
In plus vezi si exemplul dat de Catalin aici: Re: scrisori circulare celule combinate.
Nu imi dau seama unde gresesc
Am facut si doua sabloane si daca are cineva rabdare poate imi spune unde gresesc.
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.
Re: Generarea unor pagini word folosind date din excel.
Buna ziua
Atasat gasiti o propunere folosind macro. Am plecat de la ideea enuntata in mesajul meu anterior.
In esenta, se sorteaza tabelul-sursa, rezultatul sortat si filtrat se copiaza in fisierul Lista.docx urmat de un salt de pagina (astfel incat fiecare tabel sa fie pe o pagina noua).
Am folosit urmatorul cod:
Pentru testare: salvati arhiva pe disc si dezarhivati-o; deschideti folderul vdingo11, deschideti fisierul excel, activati continutul si rulati macro (apasati Ctrl+Q). Vedeti rezultatul in fisierul Lista.docx
IP
Atasat gasiti o propunere folosind macro. Am plecat de la ideea enuntata in mesajul meu anterior.
In esenta, se sorteaza tabelul-sursa, rezultatul sortat si filtrat se copiaza in fisierul Lista.docx urmat de un salt de pagina (astfel incat fiecare tabel sa fie pe o pagina noua).
Am folosit urmatorul cod:
Cod: Selectaţi tot
Sub Prelucrare()
'IPP - 28.02.2014
Application.ScreenUpdating = False
Dim appWord As Word.Application
Set appWord = CreateObject("Word.Application")
appWord.Visible = True
Dim myPath As String
myPath = ThisWorkbook.Path & "\"
Dim DenClasa As Range
'deschide fisierul-model word
appWord.Documents.Open myPath & "Lista.docx"
Sheets("Sheet1").Select
'sortare tabel
Range("A1").CurrentRegion.Sort Key1:=Range("C2"), Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("C65536").End(xlUp).Select
Do Until ActiveCell.Row = 1
If ActiveCell <> ActiveCell.Offset(-1, 0) Then
Selection.AutoFilter Field:=3, Criteria1:=ActiveCell.Value
'copiaza denumirea filtrata de pe coloana C
Set DenClasa = Range("C65536").End(xlUp)
DenClasa.Copy
appWord.Selection.PasteExcelTable False, False, False
'copiaza tabelul filtrat
Range("A1").CurrentRegion.Copy
appWord.Selection.PasteExcelTable False, False, False
'insereaza un salt de pagina
appWord.Selection.InsertBreak Type:=wdPageBreak
'afiseaza toate datele
ActiveSheet.ShowAllData
End If
ActiveCell.Offset(-1, 0).Select
Loop
'inchide documentul
appWord.ActiveDocument.Close
'inchide wordul si "goleste" variabila-obiect word
appWord.Quit
Set appWord = Nothing
MsgBox "Prelucrarea s-a terminat."
Application.ScreenUpdating = True
End Sub
Pentru testare: salvati arhiva pe disc si dezarhivati-o; deschideti folderul vdingo11, deschideti fisierul excel, activati continutul si rulati macro (apasati Ctrl+Q). Vedeti rezultatul in fisierul Lista.docx
IP
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.
Re: Generarea unor pagini word folosind date din excel.
Multumesc.
Este foarte bun dar neavand cunostinte VBA imi vine greu sa il personalizez dupa cum doresc:
1. nr.crt l-ati pus manual pe fiecare clasa in excel?
2. daca sursa mea ar avea 10 coloane si as dori sa afisez numai coloana 3,5,6 si 8 unde trebuie modificat.
3. daca as dori s scriu alt text in antetul unei coloane din word se poate?
4. daca doresc ca inainte si dupa tabel sa sriu un anumit text care sa se repete pe toate paginile?
5. se poate formata tabelul (centrat pe pagina, anumita latime pentru coloane, etc) sau pastreaza dimensiunile din excel.
Stiu ca sunt multe intrebari dar daca incep sa inteleg unde sa modific poate fi un ajutor nesperat pentru mine.
Nu am pretentia sa scriu eu cod nou, dar sa il pot adapta la cerintele mele
Si mai am o nedumerire legat de excel: de ce in unele sitatii daca am o filtrare activa si vreau sa fac lista automata pe o coloana (1,2,3,4,5,....) nu reusesc.
Eu procedez asa: filtrez si pe coloana unde doresc sa fac lista pentru acel filtru scriu 1, apoi 2, le selectez pe cele 2 si trag de lista in jos. Va pune 1 peste tot.
Multumesc.
Este foarte bun dar neavand cunostinte VBA imi vine greu sa il personalizez dupa cum doresc:
1. nr.crt l-ati pus manual pe fiecare clasa in excel?
2. daca sursa mea ar avea 10 coloane si as dori sa afisez numai coloana 3,5,6 si 8 unde trebuie modificat.
3. daca as dori s scriu alt text in antetul unei coloane din word se poate?
4. daca doresc ca inainte si dupa tabel sa sriu un anumit text care sa se repete pe toate paginile?
5. se poate formata tabelul (centrat pe pagina, anumita latime pentru coloane, etc) sau pastreaza dimensiunile din excel.
Stiu ca sunt multe intrebari dar daca incep sa inteleg unde sa modific poate fi un ajutor nesperat pentru mine.
Nu am pretentia sa scriu eu cod nou, dar sa il pot adapta la cerintele mele
Si mai am o nedumerire legat de excel: de ce in unele sitatii daca am o filtrare activa si vreau sa fac lista automata pe o coloana (1,2,3,4,5,....) nu reusesc.
Eu procedez asa: filtrez si pe coloana unde doresc sa fac lista pentru acel filtru scriu 1, apoi 2, le selectez pe cele 2 si trag de lista in jos. Va pune 1 peste tot.
Multumesc.
Re: Generarea unor pagini word folosind date din excel.
Buna ziua
1.In acest caz da. Insa, daca va mai fi nevoie de prelucrari suplimentare (asa cum mi se pare, vazand celelalte cerinte) in alta foaie, nr. crt. se poate insera cu ajutorul macro. Si sunt pe forum cel putin doua abordari pentru asta (ma refer la macro).
2.In subiectul la care am facut trimitere exista o astfel de situatie, tocmai de aceea am folosit o alta foaie inainte de a copia informatia in Word. Practic, dupa filtrarea initiala (dupa clasa) in alta foaie se pot face prelucrarile (via macro) dorite.
3.Ar trebui sa fiti mai explicit. Daca tot va mai fi nevoie de o prelucrare intermediara poate veti schimba textul din antetul coloanei in Excel. In noile conditii tabelul sursa original (cel care contine toate informatiile) nu va fi afectat.
4.Se poate insa abordarea poate fi diferita: pentru elemente identice repetitive se recomanda folosirea zonei de Antet/Subsol. Altfel va puteti folosi de Quick Parts. Cred ca exista pe forum si un exemplu de inserare quick parts.
5.Probabil se poate seta din macro dimensiunile coloanelor direct in Excel si copierea sa se faca cu pastrarea structurii. Pentru centrarea in pagina Word va trebui introdusa o instructiune macro specifica... Word. Teoretic se poate.
Din pacate nu am cunostinte suficiente pentru aceste transferuri de informatie Excel-Word si, in general, de manipularea altor aplicatii din Excel via VBA. V-as putea ajuta la partea de prelucrare ce tine de Excel. Pentru restul pot incerca dar probabil nu m-as incadra in timpul alocat pentru acest forum. Sincer, dat fiind premiile puse in joc in acest concurs, ma asteptam sa vad niste concurenti facand asta pentru ca eu nu o consider o problema simpla de forum ci ceva care cere mult timp si cunostinte.
Nu am o explicatie pentru problema semnalata. Insa exista pe acest forum si o varianta de numarare automata (cu ajutorul unor formule subtotal) pentru situatie de tabel filtrat. Vedeti ultimul fisier postat de mine la subiectul Registru de casa in excel, formulele de pe coloana de nr. crt.
IP
1.In acest caz da. Insa, daca va mai fi nevoie de prelucrari suplimentare (asa cum mi se pare, vazand celelalte cerinte) in alta foaie, nr. crt. se poate insera cu ajutorul macro. Si sunt pe forum cel putin doua abordari pentru asta (ma refer la macro).
2.In subiectul la care am facut trimitere exista o astfel de situatie, tocmai de aceea am folosit o alta foaie inainte de a copia informatia in Word. Practic, dupa filtrarea initiala (dupa clasa) in alta foaie se pot face prelucrarile (via macro) dorite.
3.Ar trebui sa fiti mai explicit. Daca tot va mai fi nevoie de o prelucrare intermediara poate veti schimba textul din antetul coloanei in Excel. In noile conditii tabelul sursa original (cel care contine toate informatiile) nu va fi afectat.
4.Se poate insa abordarea poate fi diferita: pentru elemente identice repetitive se recomanda folosirea zonei de Antet/Subsol. Altfel va puteti folosi de Quick Parts. Cred ca exista pe forum si un exemplu de inserare quick parts.
5.Probabil se poate seta din macro dimensiunile coloanelor direct in Excel si copierea sa se faca cu pastrarea structurii. Pentru centrarea in pagina Word va trebui introdusa o instructiune macro specifica... Word. Teoretic se poate.
Din pacate nu am cunostinte suficiente pentru aceste transferuri de informatie Excel-Word si, in general, de manipularea altor aplicatii din Excel via VBA. V-as putea ajuta la partea de prelucrare ce tine de Excel. Pentru restul pot incerca dar probabil nu m-as incadra in timpul alocat pentru acest forum. Sincer, dat fiind premiile puse in joc in acest concurs, ma asteptam sa vad niste concurenti facand asta pentru ca eu nu o consider o problema simpla de forum ci ceva care cere mult timp si cunostinte.
Nu am o explicatie pentru problema semnalata. Insa exista pe acest forum si o varianta de numarare automata (cu ajutorul unor formule subtotal) pentru situatie de tabel filtrat. Vedeti ultimul fisier postat de mine la subiectul Registru de casa in excel, formulele de pe coloana de nr. crt.
IP