Komplierungsfehler bei Weitergabe einer Word-DOT

Hallo,

ich habe folgendes Problem: Ich habe eine Word-DOT mit Word 2003 erstellt. Nun habe ich diese DOT weitergegeben. Der Nutzer hat die Word-Version 2002. Nun kommt es in allen Makros zu Komplierungsfehlern. Die Fehlermelgung lautet „Fehler beim Komplieren: Methode oder Datenobjekt nicht gefunden.“ Er tritt in folgender Zeile auf:
Selection.ShapeRange.LayoutInCell = False

Da die Version der Vorlage laut der Eigenschaften 97-2003 ist, müsste sie ja auch mit Word 2002 funktionieren. Soweit ich weiß, verwenden beide Versionen außerdem VBA6(?)

Falls mir jemand weiterhelfen kann oder irgendeine Idee hat, was das Problem auslöst, wäre ich für jede Hilfe dankbar.

Nele

Hallo,

der Fehler liegt darin, dass die Biblotheken-Verweise bei verschiedenen Versionen angepasst werden müssen und es dadruch manchmal zu Fehler beim kompilieren kommt.

Also einfach mal bei den Verweisen (glaub unter Extras) im VBA-Editor auf dem anderen Rechner schauen ob da alle verfügbar sind.

Hallo,

das sieht irgendwie nach einem fehlenden Objektverweis aus.
Schau mal auf beiden Systemen im VBA-Editor unter „Extras“->„Verweise“ ob sie identsch sind und ob es auf der Zielmaschine nicht einen Verweis gibt der als „nicht vorhanden“ gekennzeichnet ist.

Tschau
Peter

Hallo Nele,

ich würde im VBA Editor mal die Verweise checken.
Vielleicht hast du einen Verweis in deiner Version aktiviert den der andere Nutzer nicht hat.

BTW:
Eine in 2003 erstellte Word Datei ist aufgrund des Formats noch lange nicht in allen Word Versionen les-/nutzbar besonders wenn sie noch VBA Programmierung enthält.

Gruß
Marco

Hallo Nele,
stimmt schon: VBA ist VBA. Aber Word ist nicht gleich Word, die Objekte in den beiden Versionen unterscheiden sich geringfügig; und du willst eine Objekteigenschaft setzen, die die Bibliothek von Word XP so nicht bereitstellt.
Schau mal aus der VBA-Entwicklungsumgebung unter „Extras - Verweise“ nach, auf beiden Systemen, da wirst du sehen, dass unterschiedliche Word-Bibliotheken eingebunden sind. Und auf dem XP-System wirst du im Objektkatalog (F2) kein .ShapeRange.LayoutInCell finden, das gibt’s in der Version noch nicht, d.h. die Aktion, die du da ausführen wolltest, steht unter Word XP (noch) gar nicht zur Verfügung.

Lösung: Auf die eh nicht durchführbare Aktion verzichten, wenn das inhaltlich möglich ist, oder die entsprechende Alternative implementieren, mit Word XP.

Viel Erfolg beim Umsetzen,
Katharina

Hallo,

ich kenne mich zwar recht wenig in Makros für Word aus, jedoch würde ich mal überprüfen, ob alle Bibliotheken geladen sind. Eventuell fehlt eine.

Ansonsten wünsche ich dir viel Glück bei der Suche nach deiner Antwort.

gruß

P.S. Meistens hilft es, wenn man die Datei hochlädt.

Hallo Nele,

welche Version von VBA genutzt wird, findet man heraus, wenn man im VBA-Editor auf das ?-Zeichen im Menü des VBA-Editors drückt und dann Microsoft Visual Basic Info oder so auswählt. Dies könnte eins der Probleme bei Kompilierbarkeit sein.
Eine andere Möglichkeit besteht darin, dass evtl. nicht alle Add-Ins/Objektbibliotheken geladen sind -> Vergleiche die Einträge im Menü des VBA-Editors unter Extras -> Verweise bzw. unter Add-Ins -> Add-In-Manager.

Ich selber benutze Word 2000 unter VBA 6.0 und bei mir finde ich die Eigenschaft .LayoutInCell auch nicht. Es kann durchaus sein, dass dies nur in einer höheren VBA-Version verfügbar ist.
Beim Speichern einer höheren Word-Version in ein allgemeineres/niedrigeres Format wird VBA nicht angepasst. Word weiß ja nicht, was programmiert wurde :wink:
Das Speichern in allgemeinere/niedrigere Formate gilt nur für das Dokument selber, nicht für den Code.
Ob MS-Office ab 2007 oder höher auch VBA-Code herunterskalieren kann, weiß ich nicht - ich würde es aber nicht ausprobieren.

Ach so, kannst ja mal schauen im VBA-Editor unter Extras -> Verweise, welche Word-Objektbibliothek bei Dir verwendet wird. Bei mir ist es nur die 9.0er Version, ich weiß aber, dass es mindestens die 10er Version gibt.

Grüße
Surfin Willy

Hallo Nele,

um dir ggf. helfen zu können, müsste ich wissen, was sich in diesem Moment in der Selection befindet (sprich: was für ein Objekt).

Mit Word 2002 meinst du Word XP?

BellHouse

Moin Nele,

erstmal muss ich sagen: ich habe nur ein einziges mal mit Word Automation gearbeitet, bin dafür also kein Experte!

ich habe folgendes Problem: Ich habe eine Word-DOT mit Word
2003 erstellt. Nun habe ich diese DOT weitergegeben. Der
Nutzer hat die Word-Version 2002. Nun kommt es in allen Makros
zu Komplierungsfehlern.

Woher kommen denn die Makros? Hast Du die selbst geschrieben? Oder mit dem Recorder aufgezeichnet?

Die Fehlermelgung lautet „Fehler beim
Komplieren: Methode oder Datenobjekt nicht gefunden.“ Er tritt
in folgender Zeile auf:
Selection.ShapeRange.LayoutInCell = False

Klingt erstmal so, als ob ShapeRange oder LayoutInCell neu in 2003 wären? Schau doch mal in der 2002er Version in den Objektkatalog, ob dort das Selection-Objekt ein ShapeRange und ShapeRange ein LayoutInCell-Attribut enthält. Falls nicht, wirst Du das Makro wohl umschreiben müssen und Funktionalität verwenden, die auch in 2002 existiert.

Ich kann mir gut vorstellen, dass die Angabe 97-2003 sich auf die Kompatibilität der Word Komponenten und Formatierungen bezieht, weniger auf den enthaltenen Objektkatalog. Und wenn dieses Attribut in der 2003er eingeführt wurde, dann kann die 2002er sie ja nicht unterstützen. :smiley:

Aber das ist nur eine Vermutung. Falls das Attribut tatsächlich in beiden Versionen vorhanden ist, dann speichere die DOT Vorlage mal als richtiges Word-Dokument, um zu prüfen, ob es an der Vorlagefunktion liegt.

Tut mir leid, wenn das nur Deine Zeit kostet, aber wie gesagt kann ich leider auch nur raten. :smile:

Viel Erfolg!

LG,
Michael

Da die Version der Vorlage laut der Eigenschaften 97-2003 ist,
müsste sie ja auch mit Word 2002 funktionieren. Soweit ich
weiß, verwenden beide Versionen außerdem VBA6(?)

Falls mir jemand weiterhelfen kann oder irgendeine Idee hat,
was das Problem auslöst, wäre ich für jede Hilfe dankbar.

Nele

Vielen Dank für die Antwort.
Da es kein wichtige Aktion war, hab ich sie am Ende einfach gelöscht :wink:

Hallo,

ist das Format vielleicht nicht gleich in der Zelle? Oder ist überhaupt was in der angegebenen Zelle?

Oder die Zellen haben sich verschoben.

Mehr kann ich dir leider nicht sagen, dafür müsste man das Makro sehen.

LG

Hi Nele,

Die Fehlermeldung weisst darauf hin, dass Word 2002 diese Funktionalität gar nicht besitzt.

Kannst Du das Kommando auch manuell über das Menü in Word 2002 ausführen? Mit anderen Worten, kannst Du verifizieren, dass Word 2002 diese Funktion überhaupt zur Verfügung stellt?

Falls nicht, könnte man ggfs. mit ON ERROR RESUME NEXT, die Fehlermeldung unterdrücken. Näheres dazu in der Word VBA Hilfe.

Gruß,

Michael