Discussion:
VBA Shape TextBox - Text einfügen funktioniert nicht (immer)
(zu alt für eine Antwort)
Marco Pietschmann
2005-08-29 09:24:21 UTC
Permalink
Hallo NG,

folgendes Problem:

Untenstehendes Makro habe ich zum Testen aufgezeichnet und es
funktioniert mittels "Makro"->"Makros" (also übers Excel Menü)
problemlos. Wenn ich es jedoch durch ein anderes Makro aufrufe, wird die
Textbox zwar erstellt, sie bleibt jedoch leer und der Text wird nicht
eingefügt.
Weiß jemand Rat?

Vielen Dank für Eure Hilfe,
Marco

Sub createTextbox()
ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 111#,
71.25, _
38.25, 15#).Select
Selection.Characters.text = "test"
With Selection.Characters(Start:=1, Length:=4).Font
.Name = "Arial"
.FontStyle = "Standard"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
End Sub
Melanie Breden
2005-08-29 09:35:18 UTC
Permalink
Hallo Marco,
Post by Marco Pietschmann
Untenstehendes Makro habe ich zum Testen aufgezeichnet und es
funktioniert mittels "Makro"->"Makros" (also übers Excel Menü)
problemlos. Wenn ich es jedoch durch ein anderes Makro aufrufe, wird die
Textbox zwar erstellt, sie bleibt jedoch leer und der Text wird nicht
eingefügt.
versuchs mal ohne zu selektieren:

Sub createTextbox()
With ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, _
111#, 71.25, 38.25, 15#)
.DrawingObject.Text = "test"
End With
End Sub


Mit freundlichen Grüssen
Melanie Breden
--
- Microsoft MVP für Excel -
Microsoft Excel - Die ExpertenTipps http://tinyurl.com/cmned
Das Excel-VBA Codebook http://excel.codebooks.de
Excel-Auftragsprogrammierung
Marco Pietschmann
2005-08-29 10:30:48 UTC
Permalink
Hallo Melanie,
vielen Dank für Deine Antwort. Habe aus Deinem Beispiel noch die
(überflüssigen) "With" Elemente entfernt. Leider jedoch genau das
gleiche Problem: Problemlos per Excel Menü, im Makro: Fehlanzeige....

Gruß,
Marco
Melanie Breden
2005-08-29 10:46:48 UTC
Permalink
Hallo Marco,
Post by Marco Pietschmann
vielen Dank für Deine Antwort. Habe aus Deinem Beispiel noch die
(überflüssigen) "With" Elemente entfernt. Leider jedoch genau das
gleiche Problem: Problemlos per Excel Menü, im Makro: Fehlanzeige....
wo ist denn die Proz. gespeichert und wie und mit welchem Code rufst du sie auf?


Mit freundlichen Grüssen
Melanie Breden
--
- Microsoft MVP für Excel -
Microsoft Excel - Die ExpertenTipps http://tinyurl.com/cmned
Das Excel-VBA Codebook http://excel.codebooks.de
Excel-Auftragsprogrammierung
Marco Pietschmann
2005-08-29 11:15:20 UTC
Permalink
Hallo Melanie,
Post by Melanie Breden
wo ist denn die Proz. gespeichert und wie und mit welchem Code rufst du sie auf?
sie befindet sich innerhalb eines Moduls in der Excel-Datei. Im selben
Modul befindet sich eine "public function", welche diese mittels "call"
aufruft.
Übrigens: Wenn ich aus der Sub eine public function mache und sie
mittels "=createTextbox()" aufrufe, habe ich genau das gleiche Problem:
Box wird erstellt, Text aber nicht eingefügt.

Gruß,
Marco
Melanie Breden
2005-08-29 11:24:15 UTC
Permalink
Hallo Marco,
Post by Marco Pietschmann
Post by Melanie Breden
wo ist denn die Proz. gespeichert und wie und mit welchem Code rufst du sie auf?
sie befindet sich innerhalb eines Moduls in der Excel-Datei. Im selben
Modul befindet sich eine "public function", welche diese mittels "call"
aufruft.
Übrigens: Wenn ich aus der Sub eine public function mache und sie
Box wird erstellt, Text aber nicht eingefügt.
das Verhalten kann ich im Moment nicht reproduzieren :-(

Welche Excel-Version verwendest du?
Kannst du mir einen Auszug deiner Mappe zusenden?


Mit freundlichen Grüssen
Melanie Breden
--
- Microsoft MVP für Excel -
Microsoft Excel - Die ExpertenTipps http://tinyurl.com/cmned
Das Excel-VBA Codebook http://excel.codebooks.de
Excel-Auftragsprogrammierung
Marco Pietschmann
2005-08-29 11:37:01 UTC
Permalink
Hallo Melanie,
Post by Melanie Breden
Welche Excel-Version verwendest du?
Excel 2000 (9.0.3821 SR-1)
Post by Melanie Breden
Kannst du mir einen Auszug deiner Mappe zusenden?
Eben in gesonderter Mail an Dich. (Wollte kein File in die NG posten)...

Danke und Gruß,
Marco
Melanie Breden
2005-08-29 12:51:43 UTC
Permalink
Hallo Marco,
Post by Marco Pietschmann
Excel 2000 (9.0.3821 SR-1)
Post by Melanie Breden
Kannst du mir einen Auszug deiner Mappe zusenden?
Eben in gesonderter Mail an Dich. (Wollte kein File in die NG posten)...
habe deine Datei auf Win 2000 mit Excel2000 SR1 getestet und dort
funktionieren die Prozeduren einwandfrei.
Ob direkt über Makro/Makros oder Sub- bzw. Funktion-Aufruf ist egal.
Läuft einwandfrei und erstellt ein neues Textfeld mit dem Text.

Kannst du denn im Nachhinein dem TextFeld Text hinzufügen?
Folgende Zeile ins Direktfenster kopieren und mit 'Enter' aufrufen:

ActiveSheet.Shapes("Textfeld 1").DrawingObject.Text ="Melanie"


Mit freundlichen Grüssen
Melanie Breden
--
- Microsoft MVP für Excel -
Microsoft Excel - Die ExpertenTipps http://tinyurl.com/cmned
Das Excel-VBA Codebook http://excel.codebooks.de
Excel-Auftragsprogrammierung
Marco Pietschmann
2005-08-29 13:23:09 UTC
Permalink
Hallo Melanie,

vielen Dank für Deine Mühe...
Post by Melanie Breden
habe deine Datei auf Win 2000 mit Excel2000 SR1 getestet und dort
funktionieren die Prozeduren einwandfrei.
Ob direkt über Makro/Makros oder Sub- bzw. Funktion-Aufruf ist egal.
Läuft einwandfrei und erstellt ein neues Textfeld mit dem Text.
Bei mir komischerweise nicht, habs eben an nem anderen WinXP mit
Excel2000 getestet und auch an einem Win2000 mit Excel2000 - leider mit
gleichem negativen Ergebnis.
Post by Melanie Breden
Kannst du denn im Nachhinein dem TextFeld Text hinzufügen?
ActiveSheet.Shapes("Textfeld 1").DrawingObject.Text ="Melanie"
Ja, das funktioniert dann - aber nur wenn ich es aktiv im Direktfenster
mache (also nach dem Erstellen manuell).

Habe es eben mal umgestrickt und beim Erstellen zunächst mit .Name einen
Namen vergeben und dann versucht über Deine obige Zeile den Text zu
setzen - genau das gleich Ergebnis... mir kommt das echt spanisch vor. :-(

Hab übrigens in der Zwischenzeit extra auch noch SP3 für Office2000
installiert - keine Änderung.

Für weitere Tips, Hinweise und Erfahrungswerte bin ich sehr dankbar.

Gruß,
Marco

Loading...