Laufzeitfehler 509 und 5941 und 4605 in einem Makr

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Laufzeitfehler 509 und 5941 und 4605 in einem Makr
von: Ju Lud
Geschrieben am: 13.05.2015 13:06:13

Hallo zusammen,
ich quäle mich schon viel zu lange an folgendem Problem ab:
In eine Word-Briefvorlage sollen per Makro noch Dinge wie spezifische vom User einzugebende Kundennummer, Logo und Fußzeile eingefügt werden. Die Briefvorlage ist schreibgeschützt, es gibt also lediglich Schreibfelder in die der User noch Werte eintragen kann.
Leider bekomme ich jedoch immer Laufzeitfehler. Beim Einfügen des Logos kommt folgende Fehlermeldung:
Laufzeitfehler 509: Der ViewHeaderOnly Befehl ist nicht verfügbar, weil dieser Befehl für den Lesemodus nicht zur Verfügung steht.
Der entsprechende Code ist:

Sub copylogo()
If ActiveDocument.ProtectionType <> wdNoProtection Then ActiveDocument.Unprotect
UserForm1.Hide
Documents.Open "G:\03_Textverarbeitung\Briefe - 2012\Logo.docx"
WordBasic.viewheaderonly
Selection.WholeStory
Selection.Copy
ThisDocument.Activate
WordBasic.viewheaderonly
Selection.Paste
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
Windows("Logo.docx").Close
End Sub
Dies ist Modul 2 in dem Projekt. Wenn ich ein On Error Resume Next an den Anfang stelle, kommt diese Fehlermeldung nicht mehr aber dafür bleibt am Ende das Dokument Logo.docx geöffnet, d.h. der .Close Befehl wird ignoriert. (Dort kam zuvor ansonsten folgender Fehler: "Laufzeitfehler 5941: Das angeforderte Element ist nicht in der Sammlung vorhanden.")
Bei anderen zuvor durchzuführenden Arbeitsschritten des Codes (In Modul 1) (Einfügen der Kundennummer o.ä.) kommt ebenfalls eine Fehlermeldung, nämlich:
Laufzeitfehler 4605: Die OpenDataSource-Methode oder -Eigenschaft ist nicht verfügbar, weil dieser Befehl für den Lesemodus nicht zur Verfügung steht.
Der entsprechende Code hierzu ist:
Sub test2(plz As Double)
If ActiveDocument.ProtectionType <> wdNoProtection Then ActiveDocument.Unprotect
ActiveDocument.MailMerge.OpenDataSource _
Name:="(....) 9999_Kundenstamm_für_Brieferstellung.xls", _
Format:=wdOpenFormatAuto, _
AddToRecentFiles:=False, _
ConfirmConversions:=False, _
LinkToSource:=True, _
Revert:=False, _
Connection:="Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User ID=Admin;Data Source=C:\Test.  _
_
xls;Mode=Read;Extended Properties=""HDR=YES;IMEX=1;"";Jet OLEDB:System database="""";Jet OLEDB: _
Registry Path="""";Jet OLED", _
SQLStatement:="SELECT * FROM `Tabelle1$` Where KUNR = " & plz, _
SQLStatement1:="", _
SubType:=wdMergeSubTypeAccess
UserForm1.Hide
WordBasic.viewfooteronly
Selection.WholeStory
Selection.Delete
Documents.Open FileName:= _
"G:\03_Textverarbeitung\Briefe - 2012\99_Fußzeile.docm", _
ConfirmConversions:=False, ReadOnly:=False, AddToRecentFiles:=False, _
PasswordDocument:="", PasswordTemplate:="", Revert:=False, _
WritePasswordDocument:="", WritePasswordTemplate:="", Format:= _
wdOpenFormatAuto, XMLTransform:=""
Selection.WholeStory
Selection.Copy
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
ThisDocument.Activate
Selection.Paste
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
Windows("99_Fußzeile.docm").Close
Selection.WholeStory
Selection.Fields.Locked = True
If ActiveDocument.ProtectionType = wdNoProtection Then
ActiveDocument.Protect wdAllowOnlyFormFields
End If
End Sub
Beim Debuggen wird der gesamte erste Zeilenblock (hier fett markiert) markiert. Ich konnte den Fehler vermeiden, indem ich den Code-Teil "Mode=Read;Extended Properties=""HDR=YES;" rausgenommen habe, weiß aber nicht, ob das negative Auswirkungen hat????!!!
Ich wäre froh, über jegliche Hilfe bezüglich all dieser Laufzeitfehler. Anmerkung: Es gibt die Vermutung, dass all dies mit der Verwendung unterschiedlicher Office Versionen in der Firma zu tun hat. Ist das möglich und wie kann man Fehler die dadurch entstehen verhindern?
Besten Dank schon jetzt für eure Hilfe!!

Bild

Betrifft: Doppel! owT
von: Luc:-?
Geschrieben am: 13.05.2015 17:27:28
:-?

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Laufzeitfehler 509 und 5941 und 4605 in einem Makr"