Hai Bram,
Ok heb nu voldoende info het zal echter nog niet meevallen om het in te voeren bij jou!
Ik heb de code zelf niet kunnen testen maar het zou goed moeten komen!....
OK BRAM, HAAL EVEN DIEP ADEM!
Stap voor stap:
* Zorg dat er in het gegevensbestand (wat door het programma Corsa wordt gegenereerd) een veld is opgenomen voor het aantal poststukken!
* Let op in mijn code heet het veld: "poststuk_aantal". Als jij daarvoor een andere naam gaat gebruiken verander die naam dan ook in MIJN CODE!!!!!
* Open jou samenvoegdocument Poststicker.doc
* Voeg het samenvoegveld "poststuk_aantal" in op de door jou gewenste locatie. (nu maakt deze deel uit van het samenvoegdocument)
* Sla het document op en probeer een samenvoeging met een gegevensbestand of dat alle aantallen/velden juist worden ingevuld.
Indien in orde:
* Pak de ingezipte bijlage uit in een folder. (Dit is een vba module)
* Open jou samenvoegdocument Poststicker.doc
* Toets ALT+F11 (VBE)
* Toets CTRL+R (Project verkenner)
* Selecteer Project (Poststicker)
* Rechtermuisknop op het geselecteerde project en kies: Bestand Importeren
* Blader nu naar de juist uitgepakte VBA module en kies Open!
* Nu staat de module in de VBE
* Kies Foutopsporing Project compileren
* Als er een fout gemeld wordt deze HIER melden en niet verder gaan!
* Geen fout mooi kies Opslaan.
* Sluit de VBE en keer terug naar het Word document
* Sluit deze en indien nodig sla hem op.
Uitvoeren code:
* Zorg dat er voor de test een gegevensbestand wordt geëxporteerd wat slechts 2 regels bevat. (om te testen)
* Open jou samenvoegdocument Poststicker.doc
* Bij de vraag om Macro's te activeren Kies je Macro's inschakelen!
* Let op!; krijg je voorgaande vraag niet dan staat de macrobeveiliging nog niet goed! Ga naar menu/Extra/Macro's/Beveiliging en zet deze op gemiddeld! (Begin nu opnieuw bij het kopje uitvoeren code!)
* Druk nu op ALT+F8 en selecteer in de macro dialoog de macro: "PrintEachDoc" en kies de knop Uitvoeren!
* Als alles goed is word nu de samenvoeging voltooid en wordt de eerste pagina telkens maal het veld: "poststuk_aantal" afgedrukt en pagina 2 slechts éénmaal!
* Na uitvoering wordt de originele printer weer ingesteld en zijn we klaar!
Hier de code voor de andere leden ter leering en vermaak:
Code:
Sub PrintEachDoc()
Dim oApp As Word.Application
Dim intCount As Long
Dim intTotal As Long
Dim blnMM As Boolean
Dim sDefault As String
Dim sCount As String
On Error GoTo Err_PrintDoc
Set oApp = Application
With oApp
.DisplayAlerts = False
.ScreenUpdating = False
sDefault = .ActivePrinter
.ActivePrinter = "\\SIEM-CS-ALA\vernietigen/poststukken"
With .ActiveDocument.MailMerge
blnMM = False
intCount = 1
intTotal = .DataSource.RecordCount
Do Until blnMM
.DataSource.ActiveRecord = intCount
sCount = .DataSource.DataFields("poststuk_aantal").Value
If .DataSource.ActiveRecord <> intCount Then
blnMM = True
Else
.DataSource.FirstRecord = intCount
.DataSource.LastRecord = intCount
.Destination = wdSendToNewDocument
.Execute
With oApp.ActiveDocument
.PrintOut Range:=wdPrintFromTo, Background:=False, _
Copies:=sCount, From:="1", To:="1", Collate:=True
.PrintOut Range:=wdPrintFromTo, Background:=False, _
Copies:="1", From:="2", To:="2", Collate:=True
.Close False
End With
End If
intCount = intCount + 1
Loop
End With
Exit_PrintDoc:
.ActivePrinter = sDefault
.DisplayAlerts = True
.ScreenRefresh
.ScreenUpdating = True
End With
Set oApp = Nothing
Exit Sub
Err_PrintDoc:
MsgBox "Code uitvoering wordt beëindigd door storing: " & vbCr & _
Err.Number & " " & Err.Description
Resume Exit_PrintDoc
End Sub
Veel succes! :thumb: