Avatar billede jonasclub-p Nybegynder
04. november 2010 - 17:36 Der er 2 kommentarer og
1 løsning

Brevflet (avanceret) - Udskriv dokumenterne til skrivebordet således at filnavnet er identisk med et fletflet fra dokumentet

Jeg har lavet en brevfletning og det er gået helt perfekt. Jeg bruger et excel-ark som kildedata og jeg har uden problemer skrevet de 113 breve ud fysisk via min printer.

Her kommer mit problem:
Jeg vil gerne have en separat kopi af hver af de udskrevet brev liggende på min computer (det vil sige 113 forskellige breve i en mappe på min computer). Jeg kan gøre dette uden problemer via et Adobe tilføjelsesprogram. Problemet er navngivningen af filerne. Lige nu har jeg 113 breve liggende i en mappe på skrivebordet men de hedder brev1, brev2, brev3, brev4 etc. og det er total uoverskueligt. Jeg vil meget gerne have at filnavnet hedder det samme som personen i brevet hedder (dette navn bliver trukket fra den datafil der er tilknyttet dokumentet).

Mit spørgsmål er derfor om man automatisk kan lave filnavnet identisk med et fletflet fra dokumentet (og hvordan man gør dette) ??
Avatar billede Lene Fredborg Ekspert
04. november 2010 - 21:03 #1
Du kan bruge en makro i Word til at oprette dokumenterne. Jeg har lavet en her - se kommentarerne i selve makroen.

Du skal køre makroen, _efter_ at du har lavet brevfletningen (flet til nyt dokument), og det flettede dokument skal være det aktive dokument. Du behøver ikke at gemme det flettede dokument - så vil det bare blive lukket uden at blive gemt til sidst. Der er ikke længere flettefelter i det flettede dokument, så teksten til filnavne er i makroen taget fra første afsnit i hvert brev. Hvis det ønskede står et andet sted i brevet, skal du rette i makroen.

Makroen vil oprette et nyt dokument for hver sektion i det flettede dokument (= hver post). Dokumenterne bliver gemt i den mappe, der er angivet i selve makroen (lav om, så det passer dig).

Du kan få brug for fejlhåndtering, som ikke er bygget ind her. Hvis der f.eks. er to ens navne, må du lave noget til at håndtere det - men nu har du noget at tage udgangspunkt i.

Hvis du har brug for hjælp til at installere makroen, se:
http://word.mvps.org/faqs/macrosvba/CreateAMacro.htm


Sub MailMerge_OneDocPerLetter()

    'First perform mail merge to new document, then run this macro
    'to save each letter as a separate file

    Dim strDocName As String
    Dim oDoc As Document
    Dim oDocNew As Document
    Dim strFileName As String
    Dim strFilePath As String
    Dim nSections As Long
    Dim nCount As Long
   
    Set oDoc = ActiveDocument
    nSections = oDoc.Sections.Count
   
    'Replace path with the folder path to use
    strFilePath = "C:\MyLetters\"
   
    nCount = 1
   
    Application.ScreenUpdating = False
   
    While nCount < nSections

        'Change the code line below if the name is found elsewhere
        strDocName = oDoc.Paragraphs(1).Range.Text
        'exclude parapraph mark
        strDocName = Left(strDocName, Len(strDocName) - 1)
        'append til path - replace ".doc" with ".docx" if file format must be 2007 or 2010
        strDocName = strFilePath & strDocName & ".doc"
       
        'cut section 1 and insert in new document
        oDoc.Sections.First.Range.Cut
        Set oDocNew = Documents.Add
        With oDocNew
            'make sure document is empty
            .Range.Text = ""
            'insert cut text
            Selection.Paste
            'save document with correct name
            .SaveAs FileName:=strDocName, FileFormat:=wdFormatDocument, _
                LockComments:=False, Password:="", _
                AddToRecentFiles:= _
                True, WritePassword:="", ReadOnlyRecommended:=False, _
                EmbedTrueTypeFonts:= _
                False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
                SaveAsAOCELetter:=False
            .Close
        End With
        nCount = nCount + 1
    Wend

    'close the now empty oDoc without saving
    oDoc.Close savechanges:=wdDoNotSaveChanges
   
    'clean up
    Set oDoc = Nothing
    Set oDocNew = Nothing
   
    Application.ScreenUpdating = True
   
    MsgBox "Finished. Documents saved in folder:" & vbCr & _
        strFilePath
End Sub
Avatar billede jonasclub-p Nybegynder
10. november 2010 - 10:44 #2
Tak or det.

Kan du ikke skrive et svar så du kan få pointene ??
Avatar billede Lene Fredborg Ekspert
10. november 2010 - 22:03 #3
Velbekomme. Svar kommer her.
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

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