VBA-Anwendung - Excel von Word aus gestartet - Textfeld kann nicht gefüllt werden

Wuzzel

Grünschnabel
Schönen guten Abend.

Hab ein ziemlich kniffliges Prob, wo ich nicht weiterkomme - vielleicht stehe ich aber auch bloß auf der Leitung:

Ich habe mehrere Dateien, Word- und Excel-Dateien, die aus Vorlagen generiert werden und jeweils auf Deckblatt mit einem "Label" (= Shape Nr. 16 + Textfeld) garniert werden sollen.

Ich starte von Word aus, also machen die Word-Dateien kein Problem.

Für die Excel-Dateien starte ich Excel aus Word heraus, krieg das "Shape Nr. 16" erzeugt und auch das zugehörige leere Textfeld.
Nur befüllen kann ich das Textfeld nicht wie beabsichtigt.
die Anweisung:

excelapp.activesheet.shapes(3).characters.text = "neuer Inhalt"

"kann" angeblich nicht verarbeitet werden, weil ".text" nicht existiert.

Ursache: VBA verwendet im Excel-Abschnitt "characters" aus der Word-Bibliothek ...
und die hat nunmal kein ".text"

Hat jemand eine Idee, wie ich um diese Klippe herumkomme?

Danke schon mal für's Mitdenken!
Wuzzel
 
Hallo und einen schönen guten Abend.

also "excelapp" ist ein Objekt - vielleicht auch nur ein Verweis darauf ... das ist mir nicht ganz klar.
Es wird im "Deklarationsbereich" einer "Userform" definiert und zwar mit

Dim ExcelApp As Object

Wenn ich ein Excel-Dokument bearbeiten muss/will, weise ich dieser Variablen ein Excel-Objekt zu und zwar mit

Set ExcelApp = CreateObject("Excel.Application")

kann dann in der Folge die gewünschte Datei aus der entsprechenden Excel-Vorlage erstellen,
tausche in dieser Datei diverse Platzhalter gegen aktuelle Werte aus
kann auch das "Shape Nr.16" erzeugen und formatieren,
ebenso das zugehörige Textfeld (auch ein "Shape")
bekomme dieses auch "selected" ...

Nur Text hineinschreiben kann ich nicht -
wenn der dazu nötige Code in der Sub enthalten ist, stoppt er gleich am Anfang und meint,

"Methode oder Datenobjekt nicht gefunden"

bezieht sich dabei auf ".text"

in der Anweisung

selection.characters.text ="Was ich reinschreiben will"

"selection" wurde davor mit "Label.select" definiert (sieht man auch in der ExcelDatei)

"Label" ist in der aktuellen Sub definiert mit:

Dim Label as Shape

und wird mit

Set Label = ActiveSheet.Shapes.AddTextbox(1, 415, 5, 160, 60)

"zum Leben erweckt"

Aber ... so weit kommt er ja garnicht, wenn diese Anweisung mit

selection.characters.text ="Was ich reinschreiben will"

im Code enthalten ist - da bleibt er gleich am Anfang bei der Sub-Anweisung stehen.

Ob und dass die Anweisungen davor wunschgemäß funktionieren hab ich durch
auskommentieren des bemängelten Abschnittes rausbekommen.

Wenn man diese Anweisung mit dem "Characters" schreibt, liefert die Intellisense als mögliche Werte nur die Parameter des "Characters" in der Word-Lib - nicht die der Excel-Lib ...

Weiß nicht, wie und wo ich das umschalten kann/muss.

Hoffe, ich hab mich verständlich ausdrücken können ... Danke für mitdenken!
 

Neue Beiträge

Zurück