Seriendruck, Anzahl Datensätze...

21/01/2009 - 08:29 von Heinz-Josef Bomanns | Report spam
Moin!

gegeben sei ein Seriendruck-Dokument mit Excel-Datenquelle, die z.B.
50 Datensàtze umfasst. Im Aufgabenbereich "Seriendruck", Schritt 3/6,
deaktiviert der Anwender über "Empfàngerliste bearbeiten" 20
Empfànger, so dass noch 30 auszugebende Datensàtze verbleiben. Frage
1: Wie ermittle ich per VBA, wieviele Datensàtze markiert sind (im
Beispiel wàren das 30) und Frage 2: Wie muss die Schleife aussehen, um
nur die markierten Datensàtze auszugeben. Ich habe alle möglichen
Kombinationen von .ActiveRecord, .FirstRecord, .LastRecord mit den
entsprechendn wd*-Konstanten probiert und .ActiveRecord, .RecordCount
sowie .Included abgefragt, aber es werden immer 50 Datensàtze als
markiert gemeldet bzw. .Included ist immer "True". Bin etwas verwirrt,
zumal die Beispiele in Hilfe, Doku, MSDN da auch nicht weiterhelfen
und z.T. genauso falsche Ergebnisse liefern ,-) Danke für jeden
Hinweis...


Bis dann...
...Bomi


Bei Replies via EMail bitte Unterstriche (_) in der Adresse löschen - Danke!
 

Lesen sie die antworten

#1 Michael Franke
22/01/2009 - 21:09 | Warnen spam
Hallo Bomi,

On 21 Jan., 08:29, Heinz-Josef Bomanns wrote:
Moin!

gegeben sei ein Seriendruck-Dokument mit Excel-Datenquelle, die z.B.
50 Datensàtze umfasst. Im Aufgabenbereich "Seriendruck", Schritt 3/6,
deaktiviert der Anwender über "Empfàngerliste bearbeiten" 20
Empfànger, so dass noch 30 auszugebende Datensàtze verbleiben. Frage
1: Wie ermittle ich per VBA, wieviele Datensàtze markiert sind (im
Beispiel wàren das 30) und Frage 2: Wie muss die Schleife aussehen, um
nur die markierten Datensàtze auszugeben. Ich habe alle möglichen
Kombinationen von .ActiveRecord, .FirstRecord, .LastRecord mit den
entsprechendn wd*-Konstanten probiert und .ActiveRecord, .RecordCount
sowie .Included abgefragt, aber es werden immer 50 Datensàtze als
markiert gemeldet bzw. .Included ist immer "True". Bin etwas verwirrt,
zumal die Beispiele in Hilfe, Doku, MSDN da auch nicht weiterhelfen
und z.T. genauso falsche Ergebnisse liefern ,-) Danke für jeden
Hinweis...

Bis dann...
          ...Bomi



so sollte es funktionieren:

Sub Serienbrief()
Dim wdQuelle As Word.MailMergeDataSource
Dim lngDSAnzahl As Long
Dim lngDSIncluded As Long
Dim lngCounter As Long
If ActiveDocument.MailMerge.MainDocumentType = wdNotAMergeDocument
Then
Exit Sub
End If
Set wdQuelle = ActiveDocument.MailMerge.DataSource
lngDSAnzahl = wdQuelle.RecordCount
lngDSIncluded = 0
lngCounter = 1
wdQuelle.ActiveRecord = wdFirstDataSourceRecord
Do
If wdQuelle.Included Then
lngDSIncluded = lngDSIncluded + 1
End If
lngCounter = lngCounter + 1
wdQuelle.ActiveRecord = wdNextDataSourceRecord
Loop Until lngCounter > lngDSAnzahl
MsgBox lngDSIncluded & " von " & lngDSAnzahl & " Datensàtzen sind
ausgewàhlt"
Set wdQuelle = Nothing
End Sub

Seltsamerweise tritt das von Dir geschilderte Phànomen auf, wenn in
der Schleife "If wdQuelle.Included = True Then" abgefragt wird. So hab
ich's nàmlich auch erst probiert.

Gruß, Michael

Ähnliche fragen