Printen naar meerdere bestanden vanuit 1 document

Status
Niet open voor verdere reacties.

Pinoenzo

Gebruiker
Lid geworden
15 okt 2007
Berichten
23
Ik had net een prachtig verhaal getikt, maar ik was opeens uitgelogd. :(

Ik zal mijn verhaal nog eens plaatsen.

Op het werk heb ik via Word een excel bestand met zo'n 2000 namen samengevoegd in een Word document. Elke brief van een persoon heeft 3 pagina's. Dus het document bevat zo'n 6000 pagina's.

wij kunnen printen naar een PDF bestand via PrimoPDF. Dit is een virtuele printer die te bereiken is via de normale printer instellingen in Word.

Is het mogelijk om tegen Word te zeggen dat elk persoon als aparte print beschouwd moet worden. Op deze manier kan PrimoPDF namelijk 2000 bestanden creëren.

Een andere oplossing is elke keer 3 pagina's selecteren, knippen en plakken in een nieuw document en dan via PrimoPDF een pdf bestand maken.
 
Je kunt met een macro het samengevoegde document splitsen in verschillende documenten. Als je bijgaande code combineert met een printopdracht naar PDF, dan hoef je verder niet zoveel te doen.

Code:
Sub Splitter()
' splitter Macro
' Macro created by Doug Robbins to save each letter created by a mailmerge as a separate file.
Dim Letters As Integer, Counter As Integer
Dim DocName As String

DocName = "Brief "

Letters = ActiveDocument.Sections.Count
Selection.HomeKey Unit:=wdStory
Counter = 1
While Counter < Letters
    DocName = DocName & LTrim$(Str$(Counter))
    ActiveDocument.Sections.First.Range.Cut
    Documents.Add
    Selection.Paste
    ActiveDocument.Sections(2).PageSetup.SectionStart = wdSectionContinuous
    ActiveDocument.SaveAs FileName:=DocName, FileFormat:=wdFormatDocument, LockComments:=False, _
        Password:="", AddToRecentFiles:=True, WritePassword:="", ReadOnlyRecommended:=False, _
        EmbedTrueTypeFonts:=False, SaveNativePictureFormat:=False, _
        SaveFormsData:=False, SaveAsAOCELetter:=False
    ActiveWindow.Close
    Counter = Counter + 1
Wend

End Sub
 
Oplossing 1 kan ik niet uittesten want ik mag niet downloaden
Oplossing 2 heb ik geplaatst in een Macro, maar deze komt verder niet meer terug, activeert niks en doet vrijwel niks in mijn Office 2003.

Ik moet dus vanavond thuis het programma (trial versie) uitproberen voor oplossing 1
 
Jij geeft makkelijk op ;) Wat heb je geprobeerd met de macro? Want ik heb er nooit problemen mee gehad (ook 2003).
 
Bedankt OctaFish

Macro werkt als een trein.

Bedankt.

Maar waar kan ik zeggen dat hij de naam van de brief kan aanpassen. Hij heeft namelijk nog al veel bestanden gemaakt (wat goed is) maar hij begint met naam
Brief 1.doc

en eindigt met naam
Brief 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687.doc
 
Laatst bewerkt:
Vandaag eindelijk de tijd gehad om alles goed te checken

De applicatie werkt prima, maar omdat het een trialversie is mag ik geen enkel document opslaan. :(

De macro werkt niet op het werk.
Wellicht komt dat door bepaalde policies van onze informatica afdeling.
Ik kan de macro maken, maar vervolgens met printen naar PDF gebeurd er niks extras of anders dan wanneer ik normaal print. Het blijft 1 document.

Thuis werk ik met Office 2007 en ik mag geen macro's maken.
Ben al bezig geweest om te kijken waarom niet, maar wat ik ook aanvink bij het vertrouwenscentrum, niks werkt. Ik kan geen macro's maken (en dus ook niet testen).
Er is iets met de macro beveiliging waar ik geen verstand van heb.

Onthoud, ik ben een leek met Office :)
 
Eerst maar even de aangepaste macro posten, want de naamgeving is inderdaad een beetje onhandig met die oplopende nummering...

Code:
Sub Splitter()
' splitter Macro
' Macro created by Doug Robbins to save each letter created by a mailmerge as a separate file.
Dim Letters As Integer, Counter As Integer
Dim DocName As String, [B]sDoc as string[/B]

[B]sDoc = "Brief "[/B]

Letters = ActiveDocument.Sections.Count
Selection.HomeKey Unit:=wdStory
Counter = 1
While Counter < Letters
    DocName = [B]sDoc[/B] & LTrim$(Str$(Counter))
    ActiveDocument.Sections.First.Range.Cut
    Documents.Add
    Selection.Paste
    ActiveDocument.Sections(2).PageSetup.SectionStart = wdSectionContinuous
    ActiveDocument.SaveAs FileName:=DocName, FileFormat:=wdFormatDocument, LockComments:=False, _
        Password:="", AddToRecentFiles:=True, WritePassword:="", ReadOnlyRecommended:=False, _
        EmbedTrueTypeFonts:=False, SaveNativePictureFormat:=False, _
        SaveFormsData:=False, SaveAsAOCELetter:=False
    ActiveWindow.Close
    Counter = Counter + 1
Wend

End Sub
Wat krijg je voor melding als je een macro opneemt? Want welke instellingen heb je gebruikt in het vertrouwenscentrum?
 
Vandaag ben ik weer op het werk.

Ik ga naar Macros, dan kies ik voor bewerken, ik doe plakken, opslaan en ga terug naar de macro om deze uit te voeren
beeld01.jpg


Als ik dan naar afdrukken ga en kies voor primopdf heb ik nergens de optie om te selecteren bij welke pagina er moet worden afgebroken en waar het nieuwe document begint.

beeld02.jpg


Ik zal wel een stap missen in mijn verhaal.
 
Volgens mij vergeet je een stap: het draaien van de macro..... Je moet de macro uitvoeren op het samengevoegde bestand, en daarna krijg je voor elke brief een eigen document. Dat kan je dan vervolgens printen naar PDF. De macro voorziet daar zelf niet in, maar je kunt 'm nog wel zo tweaken dat elk document apart naar PDF wordt gestuurd. Daarvoor zou je eerst een macro moeten maken die met jouw PDF instellingen werkt, omdat je uiteraard de juiste PDF aanroep moet hebben. De printcode die je zelf maakt kun je dan toevoegen aan de macro Splitter.
 
Ik heb het een paar keer geprobeerd deze week, maar ik zal het gewoon niet snappen.

Ik open het Word document. Daaraan gekoppeld zit het excel bestand.
Ik ga naar macros en voer de macro uit.
Vervolgens ga ik naar Brieven en verzendlijsten en ik kies voor afdruk samenvoegen.
Omdat het excel bestand er al aan vast zit worden stappen 1 en 2 overgeslagen en kom ik bij stap 3 van 6 terecht.
Alle veldjes staan al goed dus ik kan skippen naar stap 5. Hier heb ik niet de mogelijkheid om te printen dus ga ik naar stap 6 (de laatste stap)
Hier kan ik kiezen voor afdrukken. Ik kies dan voor Primopdf, maar vervolgens krijg ik 1 PDF. Waar ga ik de fout in?
 
Je volgorde klopt niet:
1. Ik open het Word document. Daaraan gekoppeld zit het excel bestand.
2. Vervolgens ga ik naar Brieven en verzendlijsten en ik kies voor afdruk samenvoegen.
3. Omdat het excel bestand er al aan vast zit worden stappen 1 en 2 overgeslagen en kom ik bij stap 3 van 6 terecht.
4. Alle veldjes staan al goed dus ik kan skippen naar stap 5.
5. Hier heb ik niet de mogelijkheid om te printen dus ga ik naar stap 6 (de laatste stap) En dat is, als het goed is: Samenvoegen naar Nieuw Document.
6. Ik ga naar macros en voer de macro uit.

Nu krijg je voor elke samenvoeging een eigen document. Dat kan je vervolgens printen, of omzetten naar pdf.
 
Welkom bij de fanclub ;)
 
Prima oplossing voor het probleem..

Maar is het ook mogelijk om de bestandsnaam van de Word-documenten in plaats van de counter (Brief 1, Brief 2, etc.) de naam van de geadresseerde van de brief te gebruiken (Bijv. Brief PIET of Brief JAN)? Deze naam is het eerste samengevoegde veld in de brief.

Of vraag ik nu te veel?
Alvast bedankt,
André
 
Prima oplossing voor het probleem..

Maar is het ook mogelijk om de bestandsnaam van de Word-documenten in plaats van de counter (Brief 1, Brief 2, etc.) de naam van de geadresseerde van de brief te gebruiken (Bijv. Brief PIET of Brief JAN)? Deze naam is het eerste samengevoegde veld in de brief.

Of vraag ik nu te veel?
Alvast bedankt,
André

Sorry voor het omhoogschoppen van deze vraag, maar ik ben op zoek naar precies het bovenstaande. Kan iemand hier een voorzet voor geven om de bestandsnaam variabel te maken op basis van de inhoud van een samengevoegd veld?
 
Laatst bewerkt:
Met een kleine aanpassing is er wel wat te regelen. Daarbij kun je niet werken met een veldeigenschap, omdat in het samengevoegde document geen velden aanwezig zijn. Die zijn vervangen door de waarden uit het gegevensbestand. Dus waar in het samenvoegbestand in de eerste regel een veld stond, staat nu tekst. Je zult die tekst dus moeten afvangen. En dat gebeurt in onderstaande macro:

Code:
Sub Splitter()
'------------------------------------------------------------------------------------------------------------------
' splitter Macro
' Macro created by Doug Robbins to save each letter created by a mailmerge as a separate file.
'------------------------------------------------------------------------------------------------------------------
Dim Letters As Integer, Counter As Integer
Dim DocName As String, sRange As String
Dim Pad As String, sNullen As String
Dim aRange As Range

DocName = "Brief "
Pad = "H:\Temp\Word\"

Letters = ActiveDocument.Sections.Count
Selection.HomeKey Unit:=wdStory
Counter = 1

While Counter < Letters
    ActiveDocument.Sections.First.Range.Cut
    Documents.Add
    Selection.Paste
    '-----------------------------------------------------------------------------
    'Naam samenstellen uit 1e alinea van tekst
    '-----------------------------------------------------------------------------
    Set aRange = ActiveDocument.Paragraphs(1).Range
    DocName = aRange.Text
    If Right(DocName, 1) = Chr(13) Or Right(DocName, 1) = Chr(10) Then
        DocName = Left(DocName, Len(DocName) - 1)
    End If
    '-----------------------------------------------------------------------------
    ActiveDocument.Sections(2).PageSetup.SectionStart = wdSectionContinuous
    ActiveDocument.SaveAs FileName:=Pad & DocName & ".doc", FileFormat:=wdFormatDocument, LockComments:=False, _
        Password:="", AddToRecentFiles:=True, WritePassword:="", ReadOnlyRecommended:=False, _
        EmbedTrueTypeFonts:=False, SaveNativePictureFormat:=False, _
        SaveFormsData:=False, SaveAsAOCELetter:=False
    ActiveWindow.Close
    Counter = Counter + 1
Wend

End Sub
 
foutcode 4198

Beste Octa,

Ik probeer je macro te gebruiken die de bestandsnaam variabel maakt. Ik heb het pad aangepast maar krijg telekens foutcode 4198 bij het draaien van de macro. Wat doe ik fout?
 
waarschijnlijk staat er in de eerste regel van je brief tekens die niet in de bestandsnaam mogen voorkomen
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan