Word2000: aufgezeichnetes Makro nicht ausführbar

Ich habe in Word ein Makro aufgezeichnet.
Dabei wird ein Druckerschacht gewählt in Datei-Seite einrichten sowohl für die erste als auch für die nachfolgenden Seiten.

Will ich dieses Makro abspielen dann erhalte ich eine Fehlermeldung:
Laufzeitfehler 4608, Wert nicht im Definitionsbereich.

Kennt jemand das Problem oder noch besser eine Lösung ?
Danke
Andreas

Hallo Andreas

Wie sieht das aufgezeichnete Makro denn aus?

Vielleicht der wichtigste Nachteil von aufgezeichnetem Code, ist die Tatsache, dass dieser unter einer ganz bestimmten Ausgangslage aufgezeichnet wurde und damit nicht tel quel auf andere Situationen übertragbar ist.

Programmierer und Programmiererinnen werden in erster Linie nicht für das Codieren bezahlt, das kann man bald mal aus dem Handgelenk, sondern dafür, dass sie die Aufgabenstellung gründlich analysieren und einen allgemeingültigen Code dafür abliefern.

Gruss
S. Widmer

Hallo Andreas

Wie sieht das aufgezeichnete Makro denn
aus?

With ActiveDocument.PageSetup
.FirstPageTray = SCHACHT_1
.OtherPagesTray = SCHACHT_1
End With
und weitere Einstellungen, die Konstanten SCHACHT_X sind im Deklarationsteil mit den von Word vorgegebene Konstanten definiert.
(Die Benennung mit den SCHACHT_1 usw. sind für den Kunden, der sich in VBA nicht so auskennt und diese Konstante leichter versteht als z.B. wdTrayUpperBin)

Mein Problem BESTAND darin, dass Word seine eigenen Konstanten im Makro eingetragen hatte und auch diese nicht haben wollte.

Irgendwo hatte sich aber ganz einfach der Zugriff auf den Druckertreiber festgefahren (.FirstPageTray und .OtherPagesTray waren mit unsinnigen Werten initialisiert, Zugriff zur Wertezuweisung wurde verweigert - siehe Fehlermeldung).
Auf einem anderen System funktionierte alles reibungslos und heute nach einem Wochenendurlaub und Rechnerneustart funktioniert alles auch in WW2000.

Andreas

Hallo Andreas

Versuchen Sie es mal so:

Sub TestA()
For i = 1 To ActiveDocument.Sections.Count
With ActiveDocument.PageSetup
.FirstPageTray = SCHACHT_1
.OtherPagesTray = SCHACHT_1
End With
Next i
End Sub

Gruss
S. Widmer