If Merge.State = wdMainAndDataSource Then Merge.Execute
EndSub
Wenn du die anderen Spalten auch durchlaufen willst, dann musst du die Spaltennamen in ein Array packen und in einer Schleife durchlaufen.
--
If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch --
Ganz großes Kino! So habe ich es mir vorgestellt. Vielen Dank schonmal!
2 Dinge noch, es wird automatisch ein neues Fenster mit dem Serienbrief geöffnet, kann ich das unterbinden.
Alternativ habe ich jetzt ein uncharmantes "ActiveDocument.Close wdDoNotSaveChanges" eingebaut, was natürlich den Bildschirm kurz flackern lässt. Unsauber eben.
Als zweites würde ich gern noch die Fehlermeldung abfangen, wenn die ausgewählte Unterebene keinen Inhalt hat.
Ich dachte da an...
Quellcode
If Merge.DataSource.DataFields("Oberordner").Value = "" Then
MsgBox "Diese Ebene hat keinen Inhalt", vbInformation
If Merge.DataSource.DataFields("Oberordner").Value = "" Then
Suchst du sowas:
Visual Basic-Quellcode
If Merge.DataSource.RecordCount =0Then
Im übrigen könnte es auch sein, dass dein ursprüngliches Problem auch mit dem Parameter SuppressBlankLines behoben wäre.
Wenn du dich mit MailMerge befasst, solltest du eh diese Doku mal ausführlich studieren.
Da gibt's bestimmt noch viele Parameter, mit denen du spielen kannst, um den gewünschten Erfolg zu erzielen.
Nachschlagen geht schneller als fragen. Und ist effizienter.
--
If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch --
Dank Deiner Hilfe konnte ich das Thema zu einem erfolgreichen Abschluß bringen.
Nochmals Danke dafür!
Die MailMerge-Eigenschaft bin ich auch mal durchgegangen aber da muss ich noch etwas mehr Zeit aufbringen.
Eine Frage hätte ich noch zum Schluß, wäre es generell möglich den immer aktuell geladenen Record in einer Listbox auf der Userform anzuzeigen?
Praktisch nur nochmal als Prüfung, ob der richtige Bereich gewählt wurde.
wäre es generell möglich den immer aktuell geladenen Record in einer Listbox auf der Userform anzuzeigen?
Ich glaube nicht, dass die MailMerge.Execute eine Progress-Methode hat, die den Aufrufer per Callback oder Event informiert.
Aber wenn du eine Möglichkeit findest, kannst du es hier gerne veröffentlichen.
--
If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch --