Frage zum Thema: Select-Befehl umgehen

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

Betrifft: Frage zum Thema: Select-Befehl umgehen
von: Fabian
Geschrieben am: 29.09.2015 10:49:00

Hallihallo,
ich habe mal eine ganz grundsätzliche Frage zum Thema "Select".
Ich wollte gern, dass sich der Text meines Commandbuttons ändert, nachdem ich auf ihn geklickt habe und habe mir dazu den nötigen Code zunächst per Makro-Aufzeichnung gemopst. Da der Select-Befehl einen Prozess bekanntermaßen stark verlangsamt, je mehr man davon nutzt, wollte ich ihn umgehen. Und hier meine Frage: Warum funktioniert dieser Code:
ActiveSheet.Shapes.Range(Array("Button 1")).Select
Selection.Characters.Text = "Hallo"
aber dieser nicht:
ActiveSheet.Shapes.Range(Array("Button 1")).Characters.Text = "Hallo"
?
Funktioniert das nur in bestimmten Fällen nicht, sollte es eigentlich funktionieren oder funktioniert das nie? ^^
Ich hoffe, ihr könnt mir da weiterhelfen.
Liebe Grüße
Fabian

Bild

Betrifft: AW: Frage zum Thema: Select-Befehl umgehen
von: Daniel
Geschrieben am: 29.09.2015 11:35:59
Hi
wenn du den Text des Buttons ändern willst, brauchst du diesen Code:
ActiveSheet.Shapes.Range(Array("Button 1")).TextFrame.Characters.Text = "Hallo"
bei Grafischen Objekten hat der Recorder eine Lücke und zeichnet leider nicht die vollständige Ojektkette mit auf.
bei den Excelspezifischen Objekten wie Workbook, Worksheet, Range, Cells usw. passt das eigentlich und du kannst im aufgezeichneten Code einfach das ".Select - Selection." löschen, um den Code zu überarbeiten.
warum das so ist, wissen wohl nur Billies Boys
allerdings ist meiner Erfahrung nach das Select bei Grafischen Objekten nicht so Zeitkritsich wie bei den Range-Objekten so dass man hier eher mit dem Select im Code leben kann.
Gruß Daniel

Bild

Betrifft: AW: Frage zum Thema: Select-Befehl umgehen
von: JoWE
Geschrieben am: 29.09.2015 12:00:53
Hallo Fabian,
vermutlich hast Du da ein Formularsteuerelement eingesetzt?
So geht's mit den unterschiedlichen Steuerelementen auch ohne Select:


Sub changeButtonText1()
    'hier handelt es sich um ein Formularsteuerlement
    Sheets("Tabelle1").Shapes("Button 1").TextFrame.Characters.text = "Ich bin ein  _
Formularsteuerelement!"
End Sub


Sub changeButtonText2()
    'Hier handelt es sich um ein ActiveX-Steuerelement
    Sheets("Tabelle1").CommandButton1.Caption = "Ich bin ein ActiveX-Steuerelement!"
End Sub

Gruß Jochen

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Erweiterung Formel für Zeilennummer auslesen"