Ohne den Code zu sehen, mit Vermerk, welche Zeile den Fehler veranlasst, ist
es unmöglich zu sagen, was da los sein könnte.
Wo hast Du probiert, den Filter zu setzen? Direkt im Empfänger Dialogfeld?
Oder in den Abfrage-Optionen (wie in Word97)? Falls im ersteren, probiere es
wie anhin über die Abfrage Optionen. (Du findest sie, wenn Du den letzten
Eintrag einer "Filterliste" im Empfänger Dialogfeld wählst)
Cindy Meister
Autor von: Microsoft Word. Das Profibuch (MS Press)
INTER-Solutions, Switzerland
http://www.mvps.org/word
http://homepage.swissonline.ch/cindymeister
http://go.compuserve.com/MSOfficeForum
Rückfragen & Antworten nur in der Newsgroup, bitte!
siehe unten
> Wo hast Du probiert, den Filter zu setzen? Direkt im Empfänger Dialogfeld?
> Oder in den Abfrage-Optionen (wie in Word97)? Falls im ersteren, probiere
es
> wie anhin über die Abfrage Optionen. (Du findest sie, wenn Du den letzten
> Eintrag einer "Filterliste" im Empfänger Dialogfeld wählst)
leider verstehe ich nicht, wie das du hier meinst. Wie komme ich denn zu den
Abfrageoptionen wie in Word97? Deshalb gebe ich dir nochmals die Schritte
und auch die Fehleranzeige in Debuggen an:
Makrorekorder an.
- Etiketten wählen
- Datenquelle -->meine Tabelle öffnen
- Tabelle auswählen -->erster Eintrag - oder wenn vorher schon Filter
gesetzt, diesen Eintrag auswählen
- Seriendruckfelder einfügen
- Etiketten übertragen
- Seriendruckempfänger -->hier setze ich meinen Filter mit dem Pfeil in der
Spaltenüberschrift
- Seriendruck in Datei -->alles wird nun richtig angezeigt, d.h. auch
gefiltert
Makrorekorder aus.
Wenn ich jetzt das Makro ausführe kommt: Laufzeitfehler 509 und wenn ich
debugge:
ein gelber Pfeil, der auf den gelben Text
"WordBasic.MailMergePropagateLabel" zeigt.
> Cindy Meister
> Autor von: Microsoft Word. Das Profibuch (MS Press)
> INTER-Solutions, Switzerland
> http://www.mvps.org/word
> http://homepage.swissonline.ch/cindymeister
> http://go.compuserve.com/MSOfficeForum
>
> Rückfragen & Antworten nur in der Newsgroup, bitte!
>
Vielen Dank für deine Hilfe
Beate
Gut, jetzt verstehe ich, was alles los ist.
Das erste Problem ist, dass man die Erstellung von Seriendrucketiketten mit
dem Makrorekorder nicht aufzeichnen kann. Das Etikettenblatt muss "von Hand"
programmiert werden. Aber ich frage mich, ob das hier wirklich notwendig ist.
Kannst Du genauer beschreiben, was mit dem Makro erreicht werden soll? Bzw,
was würde es machen, dass eine Dokumentvorlage, die mit der Datenquelle
verbunden ist, nicht tut?
Abfrageoptionen: Im Empfängerdialogfeld, klicke auf den Pfeil irgendeines
Feldnamens. Der allerletzte Eintrag in der Liste öffnet das Dialogfeld mit den
Abfrageoptionen (setzen einen Filter). Im allgemein arbeitet der Seriendruck
besser mit diesen Filtern, als mit einer in der Empfängerliste festgelegten
Auswahl.
Ich hatte mit Word97 ein Makro (mehrere, je nach Filterfunktion) erstellt
und mir dieses als Schaltflächensymbol in die Symbolleiste gelegt, das
musste nur angeklickt werden und schon lagen die gefilterten
Adressenetiketten im Drucker. Mit der Dokumentvorlage klappt das ja auch
schon gut, sind aber 1-2 Mausklicks mehr :-).
Vielen Dank für deine Hilfe.
Beate
> Ich hatte mit Word97 ein Makro (mehrere, je nach Filterfunktion) erstellt
> und mir dieses als Schaltflächensymbol in die Symbolleiste gelegt, das
> musste nur angeklickt werden und schon lagen die gefilterten
> Adressenetiketten im Drucker. Mit der Dokumentvorlage klappt das ja auch
> schon gut, sind aber 1-2 Mausklicks mehr :-).
>
Es geht also hauptsächlich um die Filter, und nicht um die Verknüpfung der
Daten? DAS lässt sich aufzeichnen, glaube ich.
Hast du inzwischen die Abfrageoptionen gefunden? Und ein wenig getestet?
Starte den Makrorekorder unmittelbar vor der Einblendung des
Empfänger-Dialogfelds. Gehe in die Abfrageoptionen, lege einen Filter fest,
mit OK wieder raussteigen und den Rekorder anhalten.
Wenn Du den Code anschaust, sollst Du eigentlich nur ein Kommando sehen,
die ungefähr wie folgt anfängt:
ActiveDocument.MailMerge.DataSource.QueryString = "SELECT..."
Abfrageoptionen habe ich gefunden. Leider funktioniert das Makro auch damit
nicht. Auch mit obiger Anleitung habe ich keinen Erfolg, da gerade das
Filtern (nur gefilterte Adressenetiketten ausgeben) nicht funktioniert. Das
Makro funktioniert nur in der Hinsicht, dass _alle_ Adressen, die in der
Tabelle sind, angezeigt werden.
Danke und viele Grüße
Beate
> Abfrageoptionen habe ich gefunden. Leider funktioniert das Makro auch damit
> nicht. Auch mit obiger Anleitung habe ich keinen Erfolg, da gerade das
> Filtern (nur gefilterte Adressenetiketten ausgeben) nicht funktioniert. Das
> Makro funktioniert nur in der Hinsicht, dass _alle_ Adressen, die in der
> Tabelle sind, angezeigt werden.
>
Gut, wenigstens ein Schritt näher!
Könntest Du bitte dieses letzte Makro kopieren und in Deine Antwort einfügen?
dass alle Adressen angezeigt wurden ging auch vorher schon, bevor ich
gepostet habe, allerdings nur in Verbindung mit der
"Adressenformat-Vorlage" - im Makro "testadrema.dot" genannt.
Die Adressenformat-Vorlage "testadrema.dot" beinhaltet die Formatierung der
Adressenfelder und die Verknüpfung mit der (Excel-)Adressen-Tabelle.
Wenn ich das Makro ganz von Anfang (also in ein leeres Dokument)
aufgezeichne, kommt der bereits in vorigen Postings beschriebene
Laufzeitfehler 509 ff.
> Könntest Du bitte dieses letzte Makro kopieren und in Deine Antwort
einfügen?
Sub adrema()
Documents.Add Template:= _
"C:\Dokumente und
Einstellungen\Beate\Anwendungsdaten\Microsoft\Vorlagen\testadrema.dot" _
, NewTemplate:=False, DocumentType:=0
ActiveDocument.MailMerge.ViewMailMergeFieldCodes = wdToggle
End Sub
Hmmm. Diese Makro hat die Erstellung eines neuen Dokuments von einer
bestimmten Vorlage, sowie die Einstellung für die Anzeige der Feldcodes
aufgezeichnet. Das habe ich nicht gemeint.
Führe alle diese Schritte "von Hand" aus. Du sitzest nun vor einem
Seriendruckhauptdokument, das alle Daten anzeigt.
Starte die Makroaufzeichnung auf.
Gehe in das Empfänger-Dialogfeld. Klicke den Pfeil neben irgendeinem
Feldnamen und wähle den allerletzten Eintrag aus (steht in Klammer). Ein
anderes Dialogfeld wird eingeblendet.
Setze nun den gewünschten Filter in diesem Dialogfeld. OK. OK. (Also im
Empängerdialogfeld *keine* Änderungen vornehmen).
Makrorekorder ausschalten. Diesen Code nun in Deine Antwort kopieren. Und
bitte sage mir auch, in Wörter, was der festgelegte Filter machen soll.
(Beispiel: alle Datensätze anzeigen, wo "Frankfurt" als Ort steht)
> > Könntest Du bitte dieses letzte Makro kopieren und in Deine Antwort
> einfügen?
>
> Sub adrema()
>
> Documents.Add Template:= _
> "C:\Dokumente und
> Einstellungen\Beate\Anwendungsdaten\Microsoft\Vorlagen\testadrema.dot" _
> , NewTemplate:=False, DocumentType:=0
> ActiveDocument.MailMerge.ViewMailMergeFieldCodes = wdToggle
> End Sub
>
Cindy Meister
> Makrorekorder ausschalten. Diesen Code nun in Deine Antwort kopieren. Und
> bitte sage mir auch, in Wörter, was der festgelegte Filter machen soll.
> (Beispiel: alle Datensätze anzeigen, wo "Frankfurt" als Ort steht)
>
Eben in dieser Filterung liegt der Hund begraben. Wenn ich mich ganz genau
an die von dir aufgeführten Schritte halte, wird mein Hauptdokument sehr
wohl gefiltert, das Makro aber tut überhaupt nichts. Im "Makro -
bearbeiten - Modus = debuggen wird mir auch überhaupt nichts anzeigt (außer
sub Name, etwas Kommentar und end sub).
Die Filterung sollte beispielsweise so sein:
Alle Adressen, die eine "1" in der Rubik(=Tabellenüberschrift)
"Kiga-Ausschuss" haben, sollen gefiltert (also als Adressetikett ausgegeben)
werden.
Aber wie bereits erwähnt, geht das mit der Vorlage, die ich erstellt habe
schon sehr gut. Wenn auch ein Makro, das ich unter Word 97 genau mit der
gleichen Tabelle erstellt hatte, sehr gut lief. Ein Klick und schon lag
alles fertig im Drucker. Nur mit Office XP gehts anscheinend nicht. Wobei
ich es im Geschäft sowie auch Zuhause ausprobiert habe.
(Geschäft: Win2000 und Office xp, Zuhause: WinXp und Office XP).
Ich möchte dir nochmals "herzlichen Dank" sagen für deine unermüdliche Hilfe
und ganz liebe Grüße
Beate
> Die Filterung sollte beispielsweise so sein:
> Alle Adressen, die eine "1" in der Rubik(=Tabellenüberschrift)
> "Kiga-Ausschuss" haben, sollen gefiltert (also als Adressetikett ausgegeben)
> werden.
>
OK, dann probieren wir es "von Hand" zu schreiben.
Sub Kiga1()
ActiveDocument.MailMerge.DataSource.QueryString _
= "SELECT * FROM [TabellennameHier] WHERE _
[Kiga-Ausschuss]=1"
End Sub
Das obige Makro kopieren und in ein Modul einfügen (aufgepasst auf die
Zeilen - sie könnten in der Nachricht umbrechen!). Die korrekte Tabellenname
anstelle von "TabellennamenHier" eingeben. Das Seriendruckhauptdokument liegt
bereit, alle Datensätze sind angezeigt. Das Makro jetzt ausführen. Klappts?
Sub Adrema()
'
' Adrema Makro
' Makro aufgezeichnet am 31.12.2003 von Bea
'
ActiveDocument.MailMerge.MainDocumentType = wdMailingLabels
ActiveDocument.MailMerge.OpenDataSource Name:= _
"C:\Dokumente und Einstellungen\Beate\Eigene
Dateien\Beate\excel-dateien\adrema1.xls" _
, ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="",
_
WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False,
_
Format:=wdOpenFormatAuto, Connection:="Gesamtes Tabellenblatt", _
SQLStatement:="", SQLStatement1:=""
Application.MailingLabel.DefaultPrintBarCode = False
Application.MailingLabel.CreateNewDocument Name:="", Address:="",
AutoText _
:="ExtrasEtikettenErstellen1", LaserTray:=wdPrinterManualFeed
ActiveDocument.MailMerge.DataSource.QueryString = _
"SELECT * FROM C:\Dokumente und Einstellungen\Beate\Eigene
Dateien\Beate\excel-dateien\adrema1.xls WHERE ((KigaAussch = '1'))" _
& ""
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