Avatar billede popstar Nybegynder
21. februar 2005 - 14:56 Der er 28 kommentarer og
1 løsning

Flette til flere filer i Word 2002

Jeg har et excell-ark som jeg skal flette ind i et word dokument (master) - Men jeg vil meget gerne have at hver flette post bliver flettet til hver sin fil. Kan det lade sig gøre? Eneste løsning jeg kan se, er at man kan flette til et samlet dokument.
Avatar billede supertekst Ekspert
22. februar 2005 - 12:16 #1
Standarden er som du nævner - men herefter kunne Word dokument blive opsplittet en fil pr. sektion. Dette kræver selvfølgelig lidt VBA-kode - men det kan lade sig gøre.

MVH
Avatar billede rvm Nybegynder
22. februar 2005 - 12:55 #2
Sub GemHverSektionForSigSelv()
'Denne makro gemmer hver sektion i et dokument i hvert sit dokument
    Svar = InputBox("Indtast filnavn", "Filnavn")
    Navn = ActiveDocument.Name
   
    NrSec = ActiveDocument.Sections.Count
    For i = 1 To NrSec
        ActiveDocument.Sections(i).Range.Select
        Selection.Copy
        Documents.Add DocumentType:=wdNewBlankDocument
        Selection.Paste
        ActiveDocument.SaveAs Svar & i
        ActiveDocument.Close
    Next
End Sub
Avatar billede popstar Nybegynder
23. februar 2005 - 08:52 #3
rvm:

Ikke helt forstået..

Jeg opretter makroen - så langt forstår jeg - Hvornår skal den køres? Jeg kan kun få den til at afvikle på første side... Men det er måske også bare det du mener? At man skal kører makroen for hver side?
Avatar billede rvm Nybegynder
23. februar 2005 - 08:55 #4
Den skal køres når du har flettet dokumentet. Så vil det bestå af flere sektioner, der så bliver kopieres over i nye dokumenter via makroen. Hvis du stadig har problemer, så send dit testdokument til mig - så kikker jeg på det :-) rvm(snabela)teknologisk(punktup).dk
Avatar billede popstar Nybegynder
23. februar 2005 - 08:59 #5
rvm:

Ahh... nu kører det - men kan den flette data ind fra den ene kolonne som filnavnet? Fx Kolonne WI
Avatar billede rvm Nybegynder
23. februar 2005 - 09:03 #6
Selvfølgelig, men det er straks et noget mere kompliceret ønske :-) Jeg er straks tilbage med en løsning :)
Avatar billede popstar Nybegynder
23. februar 2005 - 09:04 #7
Cool!! Jeg venter på dig!
Avatar billede rvm Nybegynder
23. februar 2005 - 09:30 #8
'Husk at sætte referancen til Excel i Words makromiljø via Tools/References Microsoft Excel X.X Object Library

Sub GemHverSektionForSigSelv()
'Denne makro gemmer hver sektion i et dokument i hvert sit dokument

Dim xlApp As Excel.Application
Dim svar As Boolean

'Opretter Excelobjektet xlApp
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True

'Åbner det rigtige regneark
svar = xlApp.Dialogs(xlDialogOpen).Show

'Hvis der er valgt et regneark
If svar = True Then
   
    'Nummeret på den kolonne i Excel, hvor navnet står - I DETTE TILFØLDE KOLONNE A
    Kolonne = 1
   
    'Navnet på moder dokumentet
    Navn = ActiveDocument.Name
   
    'Denne kode gennemløber alle sektioner i moderdokumentet
    For række = 1 To Documents(Navn).Sections.Count
        Documents(Navn).Sections(række).Range.Select
        Selection.Copy
        Documents.Add DocumentType:=wdNewBlankDocument
        Selection.Paste
        ActiveDocument.SaveAs xlApp.Cells(række, Kolonne).Value & ".doc"
        ActiveDocument.Close
    Next
End If

xlApp.Quit
Set xlApp = Nothing

End Sub
Avatar billede popstar Nybegynder
23. februar 2005 - 09:38 #9
Hold da op - Du er genial! - Det virker upåklageligt! - Tak
Avatar billede rvm Nybegynder
23. februar 2005 - 09:39 #10
:-)
Avatar billede popstar Nybegynder
23. februar 2005 - 10:13 #11
Mon du stadig er der - Jeg har et problem - Den laver to sider, selvom dokumentet kun er er en side. Kan man tvinge den til kun at tage første side?
Avatar billede rvm Nybegynder
23. februar 2005 - 10:37 #12
Prøv denne :-)

Sub GemHverSektionForSigSelv()
'Denne makro gemmer hver sektion i et dokument i hvert sit dokument

Dim xlApp As Excel.Application
Dim svar As Boolean

'Opretter Excelobjektet xlApp
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True

'Åbner det rigtige regneark
svar = xlApp.Dialogs(xlDialogOpen).Show

'Hvis der er valgt et regneark
If svar = True Then
   
    'Nummeret på den kolonne i Excel, hvor navnet står - I DETTE TILFØLDE KOLONNE A
    Kolonne = 1
   
    'Navnet på moder dokumentet
    Navn = ActiveDocument.Name
   
    'Denne kode gennemløber alle sektioner i moderdokumentet
    For række = 1 To Documents(Navn).Sections.Count
        Documents(Navn).Sections(række).Range.Select
        Selection.Copy
        Documents.Add DocumentType:=wdNewBlankDocument
        Selection.Paste
       
        'Sletter den ekstra sektion som kopiering medfører
        Selection.MoveUp Unit:=wdLine, Count:=1, Extend:=wdExtend
        Selection.Delete Unit:=wdCharacter, Count:=1

        ActiveDocument.SaveAs xlApp.Cells(række, Kolonne).Value & ".doc"
        ActiveDocument.Close
    Next
End If

xlApp.Quit
Set xlApp = Nothing

End Sub
Avatar billede popstar Nybegynder
23. februar 2005 - 10:45 #13
Ihhh... altså ... den gemmer ikke formateringen - Nu gider jeg snart ikke mere!! - Mit dokument er "liggende" - Men når jeg bruger din makro bliver det nye dokument stående...
Avatar billede rvm Nybegynder
23. februar 2005 - 11:22 #14
Det kan vi da også gøre noget ved :-)

Hvilke formateringer som du har ændret kommer ikke med?
Avatar billede rvm Nybegynder
23. februar 2005 - 11:27 #15
Du behøver ikke at skrive hvad de er ændret til, bare at de er ændret
Avatar billede rvm Nybegynder
23. februar 2005 - 11:28 #16
Her er f.eks. en kode der sætter de nye dokumenter til samme papirretning som det gamle:

Sub GemHverSektionForSigSelv()
'Denne makro gemmer hver sektion i et dokument i hvert sit dokument

Dim xlApp As Excel.Application
Dim svar As Boolean
Dim Antal As Integer

'Opretter Excelobjektet xlApp
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True

'Åbner det rigtige regneark
svar = xlApp.Dialogs(xlDialogOpen).Show

'Hvis der er valgt et regneark
If svar = True Then
   
    'Nummeret på den kolonne i Excel, hvor navnet står
    Kolonne = 1
   
    'Navnet på moder dokumentet
    Navn = ActiveDocument.Name
   
    'Denne kode gennemløber alle sektioner i moderdokumentet
    For række = 1 To Documents(Navn).Sections.Count
        Documents(Navn).Sections(række).Range.Select
        Selection.Copy
        Documents.Add DocumentType:=wdNewBlankDocument

        Selection.Paste

        Selection.MoveUp Unit:=wdLine, Count:=1, Extend:=wdExtend
        Selection.Delete Unit:=wdCharacter, Count:=1
       
        ActiveDocument.PageSetup.Orientation = Documents(Navn).PageSetup.Orientation
       
        ActiveDocument.SaveAs xlApp.Cells(række, Kolonne).Value & ".doc"
        ActiveDocument.Close
    Next
End If

xlApp.Quit
Set xlApp = Nothing

End Sub
Avatar billede popstar Nybegynder
23. februar 2005 - 13:02 #17
Perfekt - Nu kører det!
Avatar billede rvm Nybegynder
23. februar 2005 - 13:04 #18
:-)
Avatar billede popstar Nybegynder
23. februar 2005 - 13:30 #19
Grrrr.... du kan vel ikke... hjælpe med at få margin til at blive som i masteren også?

Kan man ikke lave noget PageSetup.margin? eller noget i den stil... please
Avatar billede rvm Nybegynder
23. februar 2005 - 13:32 #20
et øjeblik :-)
Avatar billede popstar Nybegynder
23. februar 2005 - 13:33 #21
Jeg tror sgu jeg selv løste det!!! Sorry!
Avatar billede popstar Nybegynder
23. februar 2005 - 13:34 #22
Synes faktisk du skal ha' lidt flere point... må man det - og hvordan?
Avatar billede rvm Nybegynder
23. februar 2005 - 13:35 #23
Efter denne linie
ActiveDocument.PageSetup.Orientation = Documents(Navn).PageSetup.Orientation

indsættes diee 4 linier
ActiveDocument.PageSetup.TopMargin = Documents(Navn).PageSetup.TopMargin
ActiveDocument.PageSetup.BottomMargin = Documents(Navn).PageSetup.BottomMargin
ActiveDocument.PageSetup.LeftMargin = Documents(Navn).PageSetup.LeftMargin
ActiveDocument.PageSetup.RightMargin = Documents(Navn).PageSetup.RightMargin
Avatar billede rvm Nybegynder
23. februar 2005 - 13:35 #24
Jeg behøver ikke flere point :-)
Avatar billede popstar Nybegynder
23. februar 2005 - 13:36 #25
Okey - Det må du selv om - Tusind tak for hjælpen!!!
Avatar billede popstar Nybegynder
23. februar 2005 - 14:08 #26
Jeg er ved at blive skør! - Der sker desværre en fejl:

Jeg har jo navngivet kolonerne A1: ID B1:Navn C3: Dato

Så når jeg kører makroen sker der det, at den tager A1, B2 og C2

Forstår du - Det vil sige at den fletter skævt...
Avatar billede popstar Nybegynder
23. februar 2005 - 14:09 #27
Nej C3 = C1: Dato
Avatar billede rvm Nybegynder
23. februar 2005 - 14:30 #28
det forstår jeg ikke - prøv atr sende dine filer til mig, så tjekker jeg det lige ... rvm(snabela)teknologisk(punktum).dk
Avatar billede popstar Nybegynder
23. februar 2005 - 14:36 #29
Tak - jeg orker ikke at bruge mere tid på dette - Jeg laver to data filer - Så virker det!

Endnu engang tak for al din hjælp!!

Pop
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Tag et kursus i Word og øg effektiviteten

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester