Serienbrief aus Excelquelle, mehrere Zeilen

Hallo Wissende,
aus nachstehender Excelquelltabelle möchte ich einen Seriendruck erstellen der so aussieht:
Seite 1:
a,jf,sonnenstr,12345,gohe
brot 5

Seite 2:
billi,allee,378784,redmont
milch 7
eier 12

Seite 3:
papsat,himmelsweg,66666,vatikan
bibel 12345
kondome 0
autos 1

usw…

Nach 2 Stunden vergeblichem Bemühen, ich kam darauf irgendwie müsste man da einbauen, k.A. ob ich damit richtig liege habe ich es aufgegeben, es kam alles mögliche raus, nur nicht dass was ich will :frowning:
Dann habe ich auch nicht kapiert, in vba heisst die Methode wohl AddNextIf, da fand ich nahezu nichts dazu in Google-Groups Ergebnissen?
Würede mich über jede Antwort freuen.
Am liebsten auch vba-Code dabei, muss aber nicht seine, den schreibe ich mir dann selbste *hoff* wenn ich erst mal erklärt bekam wie das manuell geht.
(warum verschluckt eigentlich Word meinen „-“ von „K-Nr“ das dann „KNr“ heisst?)

Mein Wordhauptdokument sieht so aus:
«KNr»,«Name»,«str»,«plz»,«ort»
«artikel» «anzahl» «Nächster Datensatz Wenn»
«artikel» «anzahl» «Nächster Datensatz Wenn»
«artikel» «anzahl» «Nächster Datensatz Wenn»
«artikel» «anzahl» «Nächster Datensatz Wenn»
«artikel» «anzahl» «Nächster Datensatz Wenn»
«artikel» «anzahl» «Nächster Datensatz Wenn»
«artikel» «anzahl» «Nächster Datensatz Wenn»
«artikel» «anzahl» «Nächster Datensatz Wenn»
«artikel» «anzahl» «Nächster Datensatz Wenn»
«artikel» «anzahl» «Nächster Datensatz Wenn»

und bei der Bedingung für nächsten Datensatz gab ich an
wenn KNr gleich KNr,
ich nehme an zumindest da liegt schon der erste Fehler :smile:

Tabellenblattname: Tabelle1
 A | B | C | D | E | F | G | 
 1| K-Nr | Name | str | plz | ort | artikel | anzahl | 
 2| a | jf | sonnenstr | 12345 | gohe | brot | 5 | 
 3| b | billi | allee | 378784 | redmont | milch | 7 | 
 4| b | billi | allee | 378784 | redmont | eier | 12 | 
 5| c | papst | himmelsweg | 66666 | vatikan | bibel | 12345 | 
 6| c | papst | himmelsweg | 66666 | vatikan | kondome | 0 | 
 7| c | papst | himmelsweg | 66666 | vatikan | autos | 1 | 
 8| d | merkel | irschendwo | 12345 | Zunah | Meyer | -1 | 
 9| e | daum | gutdrauf | 555876 | x | schnee | 1kg | 
10| e | daum | gutdrauf | 555876 | x | Perücke | 1 | 

Gruß
Reinhard

Tabelle wurde eingefügt mit Code von http://www.wer-weiss-was.de/cgi-bin/forum/showarticle.fpl?ArtikelID=2733160 

Hallo Reinhard
das siehr so aus als ob Du in Word/Seriendruck den Katalog und nicht den Serienbrief ausgewählt hättest.

Du kannst über den Serienbrief auf jeder neuen Seite einen
Datensatz ausgeben.

Viel Erfolg
Ullrich Sander

das siehr so aus als ob Du in Word/Seriendruck den Katalog und
nicht den Serienbrief ausgewählt hättest.
Du kannst über den Serienbrief auf jeder neuen Seite einen
Datensatz ausgeben.
Viel Erfolg

Hallo Ullrich,
ich habe da alles ausgewählt was mir unter Finger kam und nur im entferntesten so aussah als ob es das Problem lösen würde :smile:
Ich habe Katalog probiert, brachte nix, da hat er (Word) mir ja alles aufgelistet auf ein Blatt bzw halt 2 wegen der Textlänge:frowning:
In der Masse habe ich Seriendruck ausprobiert.

Du sagst: "Du kannst über den Serienbrief auf jeder neuen Seite einen Datensatz ausgeben.?
Nicht glaub, nur einen?, ich brauch mehr.
Irgendwie missverstehen wir uns oder es ist wieder eintag wo ich nix kapier , ich möchte, nehmen wir mal die nachfolgende Liste, einfach nur , dass jeder Kunde EIN Blatt erhält, wo alles draufsteht was er noch zu zahlen hat. Kann doch nicht sein dass das in Word noch nie vorkam, auch mit dem vba, grad gar nix mehr kapiere :frowning:
Danke
Reinhard
Also Kunde A
solldiesen Ausdruck erhalten

1000
1200
1500
7000

(wenn das nicht mal geht die Zahlen zeilenweise kundenspezifizert auszudrucken frag ich lieber gar nicht wie man an der Stelle/Zelle, keine Ahnung wie was in Word bezeichnet wird, eine Summe der Zahlen bildet :smile:
und Kunde B soll folgendes erhalten als Brief/Ausdruck:

3000
15000

Es kann doch nicht sein, dass ich eine Liste habe mit 2 Kunden die mehrfach vorkommen und ich denen pro Vorkommen ein extra Ausdruck schicken muss? Meine Logik sagt mir, es muss gehen, dass jeder der beiden Kunden jeweils nur einen Brief erhält, wo seine Positionen aufgelistet sind.
Und dass ich als gar nicht so richtig Doofer da 2 Sunden in den Satz setze plus die Denkzeit jetzt und immer noch nicht weiss wie das geht, ich sag nur wenn Bill gates nach Mainz kommt dann ist er fällig *schwör* den schneid ich in Scheiben oder gar ihn oder sonstwas, haupsache langsam und qualvoll, es muss ja die 273630000000000000 (mal geschätzt) Denkstunden ausgleichen die sein win sein office die Welt gekostet haben.
Naja clever war er schon, kaufte einem armen studenten für 1500 Dollar die Grundversion von Dos ab, überarbeitete die oder schlief druf, ist noch ungeklärt und zog dann die Schlipstypen von IBM für die Mutter aller Verträge über den Tisch.
ups, kam wieder ins grübeln, sorry :smile:

Tabellenblattname: Tabelle1
 A | B | 
1| Kunde | Schuld | 
2| a | 1000 | 
3| a | 1200 | 
4| a | 1500 | 
5| a | 7000 | 
6| b | 3000 | 
7| b | 15000 | 
Gruß
Reinhard

Tabelle wurde eingefügt mit Code von http://www.wer-weiss-was.de/cgi-bin/forum/showarticle.fpl?ArtikelID=2733160 

Datensatz ausgeben.

Lösungsansatz

Du kannst über den Serienbrief auf jeder neuen Seite einen
Datensatz ausgeben.

Hallo Reinhard,

ich versuche, Dir mal in Ansätzen zu helfen, aber nur, wenn Du mit Deiner Schimpferei aufhörst! :wink:

Gleich mal zu obigem von Ullrich. Das stimmt natürlich so nicht. Es geht auch ohne Seitenwechsel mit dem Bedingungsfeld „Nächster Datensatz“ (ohne WENN). Anwendungsbeispiel hierfür wären Adress-Etiketten. Da kann ich auf ein Blatt 14 mal dieselbe Adresse drucken lassen oder eben auch 14 verschiedene.

Irgendwie missverstehen wir uns oder es ist wieder eintag wo
ich nix kapier , ich möchte, nehmen wir mal die nachfolgende
Liste, einfach nur , dass jeder Kunde EIN Blatt erhält, wo
alles draufsteht was er noch zu zahlen hat. Kann doch nicht
sein dass das in Word noch nie vorkam, auch mit dem vba, grad
gar nix mehr kapiere :frowning:

Ich bin sicher, daß es geht, aber halt mit einer der von Dir verabscheuten verschachtelten Wenn-Dann-Konstruktion.

In „Normal-Sprech“ ungefähr so:
Wenn im nächsten Datensatz dieselbe K-Nr. steht, dann schreib K-Nr. nicht hin.
Diese Bedingung muß vor dem Feld für die K-Nr. des zweiten Datensatzes stehen.
Das gilt für alle derartigen Felder (in Deiner ersten Tabelle hattest Du ja auch noch Name und Str. usw.), könnte man in einer einzigen WENN-DANN-Formel zusammenfassen.
Wie die exakt lauten muß, weiß ich leider nicht, ich weiß aber, daß das der Ansatz zur Lösung ist.
Nach dem letzten Serienfeld des jeweiligen Datensatzes muß dann wahrscheinlich „Nächster Datensatz“ (ohne WENN) stehen.

Die Sache mit dem geklauten Bindestrich von K-Nr. wurde hier im Brett schon mal behandelt, ich habe mir aber die Lösung nicht gemerkt, sorry.

Viel Spaß beim Weiterbasteln und laß wissen, ob’s funktioniert.

Gruß Gudrun

ich versuche, Dir mal in Ansätzen zu helfen, aber nur, wenn Du
mit Deiner Schimpferei aufhörst! :wink:

Ich versuchs aufzuhören, aber ich lüge ungern und an sich nie und never (außer bei Behörden) aber da ich jetzt schon wieder 2 Stunden rumprobiert habe, ist meine ansonsten oft gute Laune sehr passend zum Wetter hierzulande, äußerst eingefroren *grrrmmmff*
Hallo Gudrun,
mit deinem Alter von 13 redest du schon sehr weise *gg

Gleich mal zu obigem von Ullrich. Das stimmt natürlich so
nicht. Es geht auch ohne Seitenwechsel mit dem Bedingungsfeld
„Nächster Datensatz“ (ohne WENN). Anwendungsbeispiel hierfür
wären Adress-Etiketten. Da kann ich auf ein Blatt 14 mal
dieselbe Adresse drucken lassen oder eben auch 14
verschiedene.

Nächster Datensatz wär schon mal ein Fortschritt, mal egal ohne oder mit „wenn“ nur wie mache ich das dass
Während ich mit nächster Datensatz den nächsten Datensatz erdenke geht dieses mistiges MS-Wor… ups, sollte ja nicht schimpfen :smile:
mist, muss sofort weg,wollte noch mehr schreiben
deshalb sehr kurz:

Das gilt für alle derartigen Felder (in Deiner ersten Tabelle
hattest Du ja auch noch Name und Str. usw.), könnte man in
einer einzigen WENN-DANN-Formel zusammenfassen.

Wie mache ich das? Syntax Beispiele usw.
Lieben Gruß
Sorry für den Abbruch des dialogs
tschüß
Reinhard

Irgendwie missverstehen wir uns oder es ist wieder eintag wo
ich nix kapier , ich möchte, nehmen wir mal die nachfolgende
Liste, einfach nur , dass jeder Kunde EIN Blatt erhält, wo
alles draufsteht was er noch zu zahlen hat. Kann doch nicht
sein dass das in Word noch nie vorkam, auch mit dem vba, grad
gar nix mehr kapiere :frowning:

Ich bin sicher, daß es geht, aber halt mit einer der von Dir
verabscheuten verschachtelten Wenn-Dann-Konstruktion.

In „Normal-Sprech“ ungefähr so:
Wenn im nächsten Datensatz dieselbe K-Nr. steht, dann schreib
K-Nr. nicht hin.
Diese Bedingung muß vor dem Feld für die K-Nr. des
zweiten Datensatzes stehen.
Das gilt für alle derartigen Felder (in Deiner ersten Tabelle
hattest Du ja auch noch Name und Str. usw.), könnte man in
einer einzigen WENN-DANN-Formel zusammenfassen.
Wie die exakt lauten muß, weiß ich leider nicht, ich weiß
aber, daß das der Ansatz zur Lösung ist.
Nach dem letzten Serienfeld des jeweiligen Datensatzes muß
dann wahrscheinlich „Nächster Datensatz“ (ohne WENN) stehen.

Die Sache mit dem geklauten Bindestrich von K-Nr. wurde hier
im Brett schon mal behandelt, ich habe mir aber die Lösung
nicht gemerkt, sorry.

Viel Spaß beim Weiterbasteln und laß wissen, ob’s
funktioniert.

Gruß Gudrun

Hallo Reinhard,

mit deinem Alter von 13 redest du schon sehr weise *gg

*LOL* Ich weiß, wo Du das herhast!

Gleich mal zu obigem von Ullrich. Das stimmt natürlich so
nicht. Es geht auch ohne Seitenwechsel mit dem Bedingungsfeld
„Nächster Datensatz“ (ohne WENN). Anwendungsbeispiel hierfür
wären Adress-Etiketten. Da kann ich auf ein Blatt 14 mal
dieselbe Adresse drucken lassen oder eben auch 14
verschiedene.

Nächster Datensatz wär schon mal ein Fortschritt, mal egal
ohne oder mit „wenn“ nur wie mache ich das dass

Das hier liefert Dir 3 identische Datensätze auf 1 Blatt:

\> \> \>

\> \> \>

\> \> \> 

Im Gegensatz hierzu 3 verschiedene auf 1 Blatt:

\> \> \>\>

\> \> \>\>

\> \> \>\> 

Das gilt für alle derartigen Felder (in Deiner ersten Tabelle
hattest Du ja auch noch Name und Str. usw.), könnte man in
einer einzigen WENN-DANN-Formel zusammenfassen.

Wie mache ich das? Syntax Beispiele usw.

Ich habe kein Muster parat, suche aber danach. Bis jetzt Fehlanzeige. Leider.

Gruß Gudrun

Hallo Reinhard,

nach nochmaligem Probieren hätte ich jetzt was für Dich.

Die Excel-Tabelle müßte so aussehen (ohne mehrfache „a“ und „b“):

Tabellenblattname: Tabelle1
 | A | B |
1| Kunde | Schuld |
2| a | 1000 |
3| | 1200 |
4| | 1500 |
5| | 7000 |
6| b | 3000 |
7| | 15000 | 

und der Serienbrief so (für 2 Kunden mit max. je 4 Beträgen):

\>
\>\>
**X** \>
\>\>
**X** \>
\>\>
**X** \>
\>\>

\>
\>\>
**X** \>
\>\>
**X** \>
\>\>
**X** \>
\>\> 

anstelle des X das WENN-DANN-Bedingungsfeld:

WENN Feldname=Kunde Vergleich=gleich Vergleichen mit "leer"
dann diesen Text "leer"
sonst diesen Text Kunde

"leer" -> Gänsefüßchen + 1 Leerzeichen + Gänsefüßchen
Kunde einfach hintippen

Oh Mann, ist das kompliziert zum Hinschreiben. Hoffentlich habe ich nichts vergessen! :wink:
Bei mir funktionierts jedenfalls so. Ein bißchen Feinarbeit (unerwünschte Zeilenwechsel, erforderlicher Seitenwechsel) habe ich Dir übriggelassen! :wink:

Gruß Gudrun

1 Like

*freu* endlich mal ein Ansatz :smile:
Moin Gudrun,
danke erstmal, werde das sofort probieren, wie ich damit klarkomme.
Lieben Gruß
Reinhard

Hallo Gudrun,
ich gebe es auf :frowning:
Danke dir für deine Mühen und ein schönes WE für dich.
Lieben Gruß
Reinhard

Halt! Hiergeblieben! :wink:
Hallo Reinhard,

ich gebe es auf :frowning:

das glaube ich jetzt nicht!

Sag mir wenigstens noch, woran es haperte.
Hat es nicht geklappt oder war das Ergebnis nicht wunschgemäß oder was sonst?

Danke dir für deine Mühen und ein schönes WE für dich.

Gern geschehen und ein ebensolches für Dich.

Gruß Gudrun

Na gut, wenn du gern viel liest schau hier :smile:)
Hallo Gudrun,
habs nochmal kreuz und quer probiert, ohne Erfolg, der erste Kunde (a) kriegt immer alles , der zweite nix :frowning:

Also so sieht Blatt 1/3 des Seriendokuments aus:
(Mir ist auch sehr dubios dasss der Serienbrief 3 Seiten hat, man aber mit Strg+A nur den Kunden a sieht, Seite 2 und 3 scheinen leer zu sein.)

a
Äpfel12
birnen3
tomaten4
kirschen56
Kundeb
Melonen2
Orangen5

bezogen auf

Tabellenblattname: Tabelle1
 A | B | C | 
1| Kunde | Artikel | Anzahl | 
2| a | Äpfel | 12 | 
3| | birnen | 3 | 
4| | tomaten | 4 | 
5| | kirschen | 56 | 
6| b | Melonen | 2 | 
7| | Orangen | 5 | 

Das Hauptdokument sieht so aus:

«Kunde»
«Artikel»«Anzahl»«Nächster Datensatz»
Kunde«Kunde»
«Artikel»«Anzahl»«Nächster Datensatz»
Kunde«Kunde»
«Artikel»«Anzahl»«Nächster Datensatz»
Kunde«Kunde»
«Artikel»«Anzahl»«Nächster Datensatz»
Kunde«Kunde»
«Artikel»«Anzahl»«Nächster Datensatz»
Kunde«Kunde»
«Artikel»«Anzahl»«Nächster Datensatz»
Kunde«Kunde»
«Artikel»«Anzahl»«Nächster Datensatz»
Kunde«Kunde»
«Artikel»«Anzahl»«Nächster Datensatz»
Kunde«Kunde»
«Artikel»«Anzahl»«Nächster Datensatz»
Kunde«Kunde»
«Artikel»«Anzahl»«Nächster Datensatz»
Kunde«Kunde»
«Artikel»«Anzahl»«Nächster Datensatz»

Warum da ein X bei dir ist, bei mir ist da ein Kunde ?!
Und Kunde steht für die Wenn-Dann-Bedingung:

Wenn Feldname: Kunde Vergleich:Gleich Vergleichen mit: " "
Dann ...: " "
Sonst...: Kunde 

ps: ob ich jetzt " " oder "" nehme ist egal, meine Logik sagt mir "" ist richtiger als " "

Nachstehend noch das ein ein Makro was ich mitlaufen liess, vielleicht erkennt ja einer darauf irgendwas warum ich mich so blöd antelle.

Bzw. Gudrun, du lässt auch ein Makro mitlaufen und postest es hier, merci.

Lieben Gruß aus Frankfurt wo es schon wieder leise rieselt , soviel Schnee hatten wir schon lange nicht hier.
Reinhard

Sub Makro3()
'
' Makro3 Makro
' Makro aufgezeichnet am 26.02.05 von r
'
 ActiveDocument.MailMerge.MainDocumentType = wdFormLetters
 ActiveDocument.MailMerge.EditMainDocument
 ActiveDocument.MailMerge.MainDocumentType = wdFormLetters
 ActiveDocument.MailMerge.OpenDataSource Name:="C:\test\kannwegobst.xls", \_
 ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, \_
 AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", \_
 WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, \_
 Format:=wdOpenFormatAuto, Connection:="Gesamtes Tabellenblatt", \_
 SQLStatement:="", SQLStatement1:=""
 ActiveDocument.MailMerge.EditMainDocument
 ActiveDocument.MailMerge.Fields.Add Range:=Selection.Range, Name:="Kunde"
 Selection.TypeParagraph
 ActiveDocument.MailMerge.Fields.Add Range:=Selection.Range, Name:= \_
 "Artikel"
 ActiveDocument.MailMerge.Fields.Add Range:=Selection.Range, Name:="Anzahl"
 ActiveDocument.MailMerge.Fields.AddNext Range:=Selection.Range
 Selection.TypeParagraph
 ActiveDocument.MailMerge.Fields.AddIf Range:=Selection.Range, MergeField:= \_
 "Kunde", Comparison:=wdMergeIfEqual, CompareTo:=""" """, TrueAutoText:= \_
 "SeriendruckEinfügenWenn1", TrueText:="", FalseAutoText:= \_
 "SeriendruckEinfügenWenn2", FalseText:=""
 Selection.TypeBackspace
 Selection.Delete Unit:=wdCharacter, Count:=1
 ActiveDocument.MailMerge.Fields.AddIf Range:=Selection.Range, MergeField:= \_
 "Kunde", Comparison:=wdMergeIfEqual, CompareTo:=""" """, TrueAutoText:= \_
 "SeriendruckEinfügenWenn3", TrueText:="", FalseAutoText:= \_
 "SeriendruckEinfügenWenn4", FalseText:=""
 Selection.MoveUp Unit:=wdLine, Count:=1
 Selection.MoveLeft Unit:=wdCharacter, Count:=6
 Selection.EndKey Unit:=wdLine, Extend:=wdExtend
 Selection.Copy
 Selection.MoveDown Unit:=wdLine, Count:=1
 Selection.MoveRight Unit:=wdCharacter, Count:=5
 Selection.Paste
 Selection.MoveUp Unit:=wdLine, Count:=1
 Selection.EndKey Unit:=wdLine, Extend:=wdExtend
 Selection.EndKey Unit:=wdLine, Extend:=wdExtend
 Selection.Copy
 Selection.MoveDown Unit:=wdLine, Count:=1
 Selection.Paste
 Selection.Paste
 Selection.Paste
 Selection.Paste
 Selection.Paste
 Selection.Paste
 Selection.Paste
 Selection.Paste
 With ActiveDocument.MailMerge
 .Destination = wdSendToNewDocument
 .MailAsAttachment = False
 .MailAddressFieldName = ""
 .MailSubject = ""
 .SuppressBlankLines = True
 With .DataSource
 .FirstRecord = wdDefaultFirstRecord
 .LastRecord = wdDefaultLastRecord
 End With
 .Execute Pause:=True
 End With
 ActiveWindow.ActivePane.LargeScroll Down:=6
 ActiveWindow.ActivePane.VerticalPercentScrolled = 0
 Windows("Dokument1").Activate
 With ActiveDocument.MailMerge
 .Destination = wdSendToNewDocument
 .MailAsAttachment = False
 .MailAddressFieldName = ""
 .MailSubject = ""
 .SuppressBlankLines = True
 With .DataSource
 .FirstRecord = wdDefaultFirstRecord
 .LastRecord = wdDefaultLastRecord
 End With
 .Execute Pause:=True
 End With
 Windows("Serienbriefe1").Activate
 Windows("Dokument1").Activate
 Selection.MoveUp Unit:=wdLine, Count:=1
 Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
 Selection.Font.Subscript = wdToggle
 Selection.Font.Subscript = wdToggle
 Selection.Font.Subscript = wdToggle
 Selection.Font.Subscript = wdToggle
 ActiveDocument.MailMerge.Fields.AddIf Range:=Selection.Range, MergeField:= \_
 "Kunde", Comparison:=wdMergeIfEqual, CompareTo:="""""", TrueAutoText:= \_
 "SeriendruckEinfügenWenn5", TrueText:="", FalseAutoText:= \_
 "SeriendruckEinfügenWenn6", FalseText:=""
 Selection.MoveLeft Unit:=wdCharacter, Count:=5
 Selection.EndKey Unit:=wdLine, Extend:=wdExtend
 Selection.Copy
 Selection.MoveDown Unit:=wdLine, Count:=1
 Selection.Paste
 Selection.Paste
 Selection.Paste
 Selection.Paste
 Selection.Paste
 Selection.Paste
 Selection.MoveUp Unit:=wdLine, Count:=16
 Selection.MoveDown Unit:=wdLine, Count:=1
 Selection.MoveDown Unit:=wdLine, Count:=13, Extend:=wdExtend
 Selection.MoveUp Unit:=wdLine, Count:=1, Extend:=wdExtend
 Selection.Delete Unit:=wdCharacter, Count:=1
 Selection.MoveDown Unit:=wdLine, Count:=3
 Selection.Paste
 Selection.Paste
 Selection.Paste
 Selection.Paste
 Selection.Paste
 Selection.Paste
 Selection.Paste
 Selection.Paste
 Selection.Paste
 Selection.Paste
 With ActiveDocument.MailMerge
 .Destination = wdSendToNewDocument
 .MailAsAttachment = False
 .MailAddressFieldName = ""
 .MailSubject = ""
 .SuppressBlankLines = True
 With .DataSource
 .FirstRecord = wdDefaultFirstRecord
 .LastRecord = wdDefaultLastRecord
 End With
 .Execute Pause:=True
 End With
 ActiveWindow.ActivePane.LargeScroll Down:=3
 ActiveWindow.ActivePane.VerticalPercentScrolled = 0
 Windows("Dokument1").Activate
 ActiveDocument.MailMerge.OpenDataSource Name:="C:\test\kannwegobst.xls", \_
 ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, \_
 AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", \_
 WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, \_
 Format:=wdOpenFormatAuto, Connection:="Gesamtes Tabellenblatt", \_
 SQLStatement:="", SQLStatement1:=""
 With ActiveDocument.MailMerge
 .Destination = wdSendToNewDocument
 .MailAsAttachment = False
 .MailAddressFieldName = ""
 .MailSubject = ""
 .SuppressBlankLines = True
 With .DataSource
 .FirstRecord = wdDefaultFirstRecord
 .LastRecord = wdDefaultLastRecord
 End With
 .Execute Pause:=True
 End With
 ActiveWindow.ActivePane.LargeScroll Down:=2
 Windows("Dokument1").Activate
 Selection.MoveUp Unit:=wdLine, Count:=1
 Selection.MoveRight Unit:=wdCharacter, Count:=5
 Selection.MoveUp Unit:=wdLine, Count:=12
 Selection.MoveRight Unit:=wdCharacter, Count:=1
 Selection.MoveLeft Unit:=wdCharacter, Count:=1
 ActiveDocument.MailMerge.Fields.Add Range:=Selection.Range, Name:="Kunde"
 Selection.TypeParagraph
 Selection.MoveUp Unit:=wdLine, Count:=1
 Selection.MoveDown Unit:=wdLine, Count:=2, Extend:=wdExtend
 Selection.Copy
 Selection.MoveDown Unit:=wdLine, Count:=1
 Selection.MoveUp Unit:=wdLine, Count:=1
 Selection.MoveDown Unit:=wdLine, Count:=12, Extend:=wdExtend
 Selection.Paste
 Selection.Paste
 Selection.Paste
 Selection.Paste
 Selection.Paste
 Selection.Paste
 Selection.Paste
 Selection.Paste
 Selection.Paste
 With ActiveDocument.MailMerge
 .Destination = wdSendToNewDocument
 .MailAsAttachment = False
 .MailAddressFieldName = ""
 .MailSubject = ""
 .SuppressBlankLines = True
 With .DataSource
 .FirstRecord = wdDefaultFirstRecord
 .LastRecord = wdDefaultLastRecord
 End With
 .Execute Pause:=True
 End With
 Windows("Dokument1").Activate
 Selection.MoveUp Unit:=wdLine, Count:=33
 Selection.MoveDown Unit:=wdLine, Count:=2
 Selection.Delete Unit:=wdCharacter, Count:=1
 Selection.MoveLeft Unit:=wdCharacter, Count:=1
 ActiveDocument.MailMerge.Fields.AddIf Range:=Selection.Range, MergeField:= \_
 "Kunde", Comparison:=wdMergeIfEqual, CompareTo:="""""", TrueAutoText:= \_
 "SeriendruckEinfügenWenn7", TrueText:="", FalseAutoText:= \_
 "SeriendruckEinfügenWenn8", FalseText:=""
 Selection.MoveLeft Unit:=wdCharacter, Count:=5
 Selection.MoveDown Unit:=wdLine, Count:=2, Extend:=wdExtend
 Selection.Copy
 Selection.MoveDown Unit:=wdLine, Count:=1
 Selection.MoveUp Unit:=wdLine, Count:=1
 Selection.MoveDown Unit:=wdLine, Count:=18, Extend:=wdExtend
 Selection.Paste
 Selection.Paste
 Selection.Paste
 Selection.Paste
 Selection.Paste
 Selection.Paste
 Selection.Paste
 Selection.Paste
 Selection.Paste
 With ActiveDocument.MailMerge
 .Destination = wdSendToNewDocument
 .MailAsAttachment = False
 .MailAddressFieldName = ""
 .MailSubject = ""
 .SuppressBlankLines = True
 With .DataSource
 .FirstRecord = wdDefaultFirstRecord
 .LastRecord = wdDefaultLastRecord
 End With
 .Execute Pause:=True
 End With
End Sub

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Wer nicht hören will, …
… muß fühlen! :wink:

Hallo Reinhard,

habs nochmal kreuz und quer probiert, ohne Erfolg, der erste
Kunde (a) kriegt immer alles , der zweite nix :frowning:

aber eben nicht genauso wie von mir vorgeschlagen.

Also so sieht Blatt 1/3 des Seriendokuments aus:
(Mir ist auch sehr dubios dasss der Serienbrief 3 Seiten hat,
man aber mit Strg+A nur den Kunden a sieht, Seite 2 und 3
scheinen leer zu sein.)

Das sehe ich mir später nochmal genauer an, jetzt auf die Schnelle
kurz das Wesentliche.

Warum da ein X bei dir ist, bei mir ist da ein Kunde ?!
Und Kunde steht für die Wenn-Dann-Bedingung:

Ich habe das X nicht aus Langeweile hinzugefügt! :wink:
Das X muß die WENN-DANN-Bedingung sein! Dann erst kommt das Feld KUNDE.
WORD muß die WENN-DANN-Bedingung kennen, bevor es das Feld KUNDE erreicht und „merkt“, ob leer oder nicht leer.

Logo, oder?
Ich schmeiß Dich auch nicht ins Wasser und frage dann, ob Du schwimmen kannst. Ich frage vorher.

ps: ob ich jetzt " " oder „“ nehme ist egal, meine Logik sagt
mir „“ ist richtiger als " "

Keine Ahnung, ob das von Bedeutung ist oder nicht. Das Leerzeichen ist da bei mir Automatismus, weil ich solche Serien-Formeln schon mit DOS-WORD geschrieben habe, als es noch nichts zum Anklicken gab und alles getippt werden mußte.

Nachstehend noch das ein ein Makro was ich mitlaufen liess,
vielleicht erkennt ja einer darauf irgendwas warum ich mich so
blöd antelle.

Es ist auch ohne Makro erkennbar. *duck&wech*

Versuch’s nochmal und genauso wie beschrieben.
Dann klappt das auch. Ganz bestimmt.
Hast Du eine andere WORD-Version als ich (WORD 97)?

Gruß Gudrun

Lösung! (kommt auch per Mail)
Hallo Reinhard,

meine Forschungen haben ergeben, daß die Excel-Tabelle für jeden Kunden genau soviele Zeilen (notfalls auch leere) braucht wie die vorgesehene Anzahl im Serienbrief.
Da das mir mit der gestrigen Version (nur 2 Kunden) nicht auffiel (nicht auffallen konnte), habe ich die Excel-Datei auf 3 Kunden mit unterschiedlicher Anzahl von Einträgen erweitert.

Für diese eventuellen Leerzeilen braucht es dann wiederum eine WENN-DANN-Abfrage für ARTIKEL und ANZAHL.

Bei 4 Zeilen pro Kunde muß der Serienbrief so aussehen:

«Kunde»
«Artikel» «Anzahl»«Nächster Datensatz»
**X** «Kunde»
**Y** «Artikel» **Z** «Anzahl»«Nächster Datensatz»
**X** «Kunde»
**Y** «Artikel» **Z** «Anzahl»«Nächster Datensatz»
**X** «Kunde»
**Y** «Artikel» **Z** «Anzahl»
.
.
<u>anstelle des X das WENN-DANN-Bedingungsfeld:</u>
WENN Feldname=Kunde Vergleich=gleich Vergleichen mit "leer"
dann diesen Text "leer", sonst diesen Text Kunde 
.
<u>anstelle des Y das WENN-DANN-Bedingungsfeld:</u>
WENN Feldname=Artikel Vergleich=gleich Vergleichen mit "leer"
dann diesen Text "leer", sonst diesen Text Artikel
.
<u>anstelle des X das WENN-DANN-Bedingungsfeld:</u>
WENN Feldname=Anzahl Vergleich=gleich Vergleichen mit "leer"
dann diesen Text "leer", sonst diesen Text Anzahl 

Und damit Du nicht wieder gefrustet vor dem Bildschirm sitzen mußt, schick ich Dir das auch per Mail in fix + fertiger Variante.

Schönen Sontag und

Gruß Gudrun

vertippt! (Selbstkorrektur)

anstelle des Y das WENN-DANN-Bedingungsfeld:
WENN Feldname=Artikel Vergleich=gleich Vergleichen mit „leer“
dann diesen Text „leer“, sonst diesen Text Artikel

hier muß es Z (nicht X) heißen:

anstelle des X das WENN-DANN-Bedingungsfeld:
WENN Feldname=Anzahl Vergleich=gleich Vergleichen mit „leer“
dann diesen Text „leer“, sonst diesen Text Anzahl

Sorry.

Gruß Gudrun

Zwichenstand
Hallo Gudrun,
wenn du jetzt noch anfängst mir ein X für ein Z vorzumachen ist ja endgültig alles aus :smile:
Dabei habe ich es jetzt exakt deinen Anweisungen folgend hinbekommen, dass a seine und b die anderen Dinge aufgelistet bekommen. Okay, noch auf ein Blatt, aber das macht nichts, jeder Kunde ist interessiert über Deatails was sein Konkurrent bekommt,also bekomen alle das Blatt rübergefaxt und können ja ihre Daten extrahiehren :smile:
Und exakt dass mit dem „exakt“ stört mich, jedwede Abweichung der Vorgehenensweise klappt nicht, d.h. ich habe noch rein gar nix kapiert warum wie was ist *seufz*
Lieben Gruß
Reinhard

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Reinhard,

wenn du jetzt noch anfängst mir ein X für ein Z vorzumachen
ist ja endgültig alles aus :smile:

ich hoffe doch nicht, daß alles aus ist! :wink:

Dabei habe ich es jetzt exakt deinen Anweisungen folgend
hinbekommen, dass a seine und b die anderen Dinge aufgelistet
bekommen. Okay, noch auf ein Blatt, aber das macht nichts,

Das ist doch schon ein Fortschritt. a kriegt seins, b auch seins.
Die Sache mit „alles auf einem Blatt“ ist nicht okay und daraus schließe ich, daß es exakt (!) an einer Stelle eine Abweichung zwischen meiner Vorgabe und Deiner Ausführung gibt.
Der Befehl „Nächster Datensatz“ verhindert einen Seitenwechsel.
Umgekehrt formuliert: wenn Du einen Seitenwechsel haben willst, darf dieser Befehl nicht dastehen. Deswegen bei insgesamt 4 Datensätzen auch nur dreimal „Nächster Datensatz“.

Hast Du meine Mail bekommen und mit meinen Dateien probiert?
Und das soll nicht geklappt haben?

Und exakt dass mit dem „exakt“ stört mich, jedwede Abweichung
der Vorgehenensweise klappt nicht, d.h. ich habe noch rein gar
nix kapiert warum wie was ist *seufz*

Das mag (Spekulation!) daran liegen, daß Du Dich gleich in schweres Serienbrief-Wetter gestürzt hast, ohne vorher die „normalen“ Sachen auszuprobieren. Normal meint hier: Kunde, Artikel, Anzahl; jede Zeile in Excel ist ein anderer Kunde und jedes Feld ist gefüllt.
Dann gäbe es nur die drei Felder, keine „WENN-DANN“-Abfragen und kein „Nächster Datensatz“.

Zur „Nächster Datensatz“-Logik schau Dir doch nochmal meinen 2. Artikel in diesem Thread an.

Zur „WENN-DANN“-Logik fällt mir nur mein Schwimmbad-Beispiel ein.
Frage am Beckenrand: Kannst Du schwimmen? (der Vergleich)
Antwort: nein ===> Befehl: mach nix („leer“)
Antwort: ja ===> Befehl:spring ins Wasser (Feld […])

Wenn Du möchtest, schick mir Deine Excel-Liste und Deinen Serienbrief per Mail, ich schmeiß einen Blick drauf (bitte denke an meine Version, beidesmal 97).
Oder nur Deine Excel-Liste, damit ich begreife, was Du mit „jedwede Abweichung“ meinst.

Gruß Gudrun