Avatar billede ssamstrup Nybegynder
30. september 2004 - 09:41 Der er 3 kommentarer og
1 løsning

Brevfletning til selvstændige dokumenter

Jeg skal lave brevflet.  Normalt laves ét dokument, men jeg skal have gemt hvert brev som selvstændige filer.

I det konkrete eksempel skal jeg have lavet 220 selvstændige dokumenter

Hvem kan hjælpe?
Avatar billede rvm Nybegynder
30. september 2004 - 10:16 #1
Kør denne kode efter du har brevflettet:

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 ssamstrup Nybegynder
30. september 2004 - 10:35 #2
Fantastisk.  Du får 30 point ekstra hvis koden kan tilpasses således at filnavnet kan genereres ud fra fra oplysningen i et af flettefelterne.
Avatar billede rvm Nybegynder
30. september 2004 - 10:48 #3
Desværre forsvinder flettefelterne, når der brevlflettes, så den er straks lidt værre..
Avatar billede rvm Nybegynder
30. september 2004 - 11:20 #4
Prøv denne:

Sæt i dit masterdokument tegnet "#" foran og bagved det felt, der indeholder navnet på filen. Skjul så tegnene via Formater/Skrifttype Skjult

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

    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
       
        'Gå til toppen af dokumentet
        Selection.HomeKey Unit:=wdStory
       
        Selection.Find.ClearFormatting
        Selection.Find.Text = "#"
        Selection.Find.Execute
       
        Selection.MoveRight Unit:=wdCharacter, Count:=1
        ActiveDocument.Bookmarks.Add Range:=Selection.Range, Name:="Nr1"
   
        Selection.Find.ClearFormatting
        With Selection.Find
            .Text = "#"
            .Forward = True
        End With
       
        Selection.Find.Execute
        ActiveDocument.Bookmarks.Add Range:=Selection.Range, Name:="Nr2"
   
        Dim doc As Document
        Dim rngDoc As Range
   
        Set doc = ActiveDocument
         
        Set rngDoc = doc.Range(Start:=doc.Bookmarks("Nr1").Range.Start, _
        End:=doc.Bookmarks("Nr2").Range.Start)
       
        rngDoc.Select
   
        svar = rngDoc
       
        ActiveDocument.SaveAs svar & i
        ActiveDocument.Close
    Next
End Sub
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