
Word/Excel Mailmerge via VBA macro problem
Hi Doug,
thank you a lot for your help. But I think we are still doing someting
wrong, because our macro refuses to work with that RecordCount thingie.
meanwhile I also got some help from a german NG and we managed to fix the
problem. I copy the code after the signature for information.
Now the macro is working and there is a new question: How do I manage that I
can call this macro from every Worddocument without import?
Is that possible?
Again, thank you for helping
Curt
--
Curt Balluff
www.curt-balluff.de
ICQ 156 842 226
------------------------------------------------------------------------
Tertium datur!
===========
Sub AnzSerien_Druck()
' Serien_Druck Makro macht aus normalem Seriendruck mehrere Druckjobs
' Makro ursprngliche Minolta Stieber 10/99
'ge?ndert Khner 5/03 Balluff nach P. Roches
'
Dim i As Integer
Dim f As Integer
Dim k As Integer
Dim l As Integer
MsgBox ("Bitte versichern Sie sich zuerst des eingestellten Druckers und
dessen Eigenschaften !!!" & vbNewLine & _
"Jetzt gehts gleich los, bitte nur noch die Serienbrief -
Vorschau ausschalten. DANKE")
With ActiveDocument.MailMerge
.DataSource.ActiveRecord = wdLastRecord
zaehler = .DataSource.ActiveRecord
End With
j = 1
f = zaehler
j = InputBox("Mit welchem Datensatz m?chten Sie beginnen ?", "erster
Datensatz: ", j)
f = InputBox("Bis zu welchem Datensatz m?chten Sie drucken ?", "letzter
Datensatz: " & zaehler, f)
While f > zaehler
f = zaehler
f = InputBox("Bis zu welchem Datensatz m?chten Sie drucken ?",
"letzter Datensatz: " & zaehler, f)
Wend
grup = CInt(InputBox("Wie viele Dokumente zusammenfassen", "Anzahl
eingeben", "100"))
While grup < 1
grup = CInt(InputBox("Wie viele Dokumente zusammenfassen", "Anzahl
eingeben", "100"))
Wend
anzahl = f - j + 1
s = Fix(anzahl / grup)
For i = 1 To s
ersterDS = j
letzterDS = ersterDS + grup - 1
With ActiveDocument.MailMerge
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
With .DataSource
.FirstRecord = ersterDS
.LastRecord = letzterDS
End With
' .Execute Pause:=True
End With
ActiveDocument.PrintOut
ActiveDocument.Close False
j = j + grup
Next i
If anzahl Mod grup <> 0 Then
With ActiveDocument.MailMerge
. Destination = wdSendToNewDocument
.SuppressBlankLines = True
With .DataSource
.FirstRecord = j
.LastRecord = f
End With
.Execute Pause:=True
End With
ActiveDocument.PrintOut
ActiveDocument.Close False
End If
End Sub