Avatar billede Sebast1996 Juniormester
22. maj 2019 - 10:16 Der er 5 kommentarer og
1 løsning

Brevflet avanceret

Hej

For at gøre lang historie kort, så kigger jeg pt. på alternative løsninger i form af at gemme dokumenter i eget system for derefter at kunne blive sendt ud. Jeg fandt en gammel kode i trådende, hvorved brevflet var en løsning. Super fedt! Nu støder jeg så ind i et enkelt problem. Det skal meget gerne gemmes som PDF og ikke Word. Har i evt. et forslag til hvorved dette kan ændres i koden?

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:\Brev\"
   
    nCount = 4 - 1
   
    Application.ScreenUpdating = False
   
    While nCount < nSections

        'Change the code line below if the name is found elsewhere
        strDocName = oDoc.Paragraphs(4).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 Lene Fredborg Ekspert
22. maj 2019 - 10:44 #1
Hej Sebastian

Jeg kan se, at du nu har postet det spørgsmål, som du stillede direkte til mig via en besked. I stedet for at linke til kilden for koden ser jeg, at du blot har kopieret koden uden angivelse af kilde. Koden er (som bekendt) lavet af mig og postet i denne tråd: https://www.computerworld.dk/eksperten/spm/923148

I mit svar på din besked foreslog jeg dig bl.a. følgende: Optag en makro, hvor du gemmer som PDF - og undersøg så den kode, Word danner. Dermed skulle du kunne finde frem til brugbar kode. Har du prøvet det?
Avatar billede Sebast1996 Juniormester
22. maj 2019 - 10:50 #2
Hej Lene

Ja, jeg har forsøgt at omdanne den til PDF og derefter undersøge koden, men output ser ikke helt fornuftigt ud.

Sub Makro1()
'
' Makro1 Makro
'
'
    ActiveDocument.ExportAsFixedFormat OutputFileName:= _
        "C:\Users\Desktop", ExportFormat _
        :=wdExportFormatPDF, OpenAfterExport:=True, OptimizeFor:= _
        wdExportOptimizeForPrint, Range:=wdExportAllDocument, From:=1, To:=1, _
        Item:=wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, _
        CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, _
        BitmapMissingFonts:=True, UseISO19005_1:=False
End Sub

Dokumentet skulle meget gerne gemmes i samme mappe og som PDF der kan åbnes, hvorimod at hvis jeg ændrer i den originale til at skulle gemme som PDF, kan den ikke åbnes.

Jeg takker selvfølgelig med kyshånd for at du gad tage tiden til at hjælpe med en løsning, men har umiddelbart problemer med at få det hele til at virke :)
Avatar billede Lene Fredborg Ekspert
22. maj 2019 - 11:28 #3
Er det meningen, at PDF-filerne skal sendes via e-mail til forskellige modtagere efterfølgende?

Hvis det er tilfældet, var det måske en idé at hente Doug Robbins' gratis MERGE TOOLS ADD-IN her: https://onedrive.live.com/?id=5AEDCB43615E886B!566&cid=5AEDCB43615E886B

Den indeholder diverse værktøjer til brevfletning inkl. "Merge With Attachments".
Avatar billede Sebast1996 Juniormester
22. maj 2019 - 13:33 #4
Efter et tidsrum, så ja. Jeg har dog lige forsøgt med foreslået add-in. Der opstår fejl ved fletfelt som indeholder tal, så det er selvfølgelig ikke helt optimalt. Jeg tænker, at det skal løses ved at lave koden om, så den kan omdanne til PDF af sig selv.
Avatar billede Lene Fredborg Ekspert
22. maj 2019 - 14:23 #5
Du kan ikke ændre koden i MERGE TOOLS ADD-IN.

I følgende tråd kan du under overskriften ”Send Mailmerge Output to Individual Files” finde en makro, som i én operation danner flettebreve og gemmer hvert enkelt som både Word-dokument (docx) og PDF:
http://www.msofficeforums.com/mail-merge/21803-mailmerge-tips-tricks.html

Se noterne under makroen og læs kommentarerne i makroen.

Det aktive dokument skal være dit flettedokument, når du kører makroen.

Bemærk: for at gemme filerne med et passende navn, skal du erstatte forekomster af "Last_Name" med et korrekt navn på et flettefelt i dit hoveddokument, som du vil bruge i navnet. Du kan udkommentere linjen:
.SaveAs FileName:=StrFolder & StrName & ".docx", FileFormat:=wdFormatXMLDocument, AddToRecentFiles:=False
hvis du kun vil gemme PDF og ikke Word-version.

Jeg har testet makroen. Den virker.
Avatar billede Sebast1996 Juniormester
22. maj 2019 - 14:56 #6
Hej Lene

Super mange tak for hjælpen! Det virkede som det skulle, bortset fra at bogmærkerne nu står som ikke defineret. Det forsøger jeg lige at finde en løsning på..

Tak fordi at du tog tiden :)
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