Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1644to1648
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

CommanButton ueber Variable ansprechen

CommanButton ueber Variable ansprechen
07.09.2018 11:41:11
Torsten
Hallo,
ich habe hier im Forum diesen Codeschnipsel gefunden.
Dim i As Integer
i = 2
Me.Controls("CommandButton" & i).BackColor = &HC000&
Ich moechte einen Button ueber eine Variable ansprechen.
Leider bekomme ich mit diesem Code die Meldung "Invalid use of Me Keyword".
Was muss ich aendern? Funktioniert das in Excel 2013 nicht mehr?

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
wo steht denn der Code?
07.09.2018 11:48:47
Rudi
Hallo,
Me funktioniert z.B. wenn der Code im Klassenmodul des Blatts steht, auf dem sich der CmB befindet.
Gruß
Rudi
AW: wo steht denn der Code?
07.09.2018 12:20:13
Torsten
nein ich habe es in einem Modul. Aber werde es mal dort versuchen.
Danke
AW: wo steht denn der Code?
07.09.2018 12:41:17
Torsten
habe es jetzt im Worksheet_Activate eingebaut, aber bekomme da "Compile Error, Method or data member not found". Der Teil .Controls ist markiert.
Die Variable bekommt die richtige Nummer. Im Einzelschritt getestet
Die Frage war Klasse, und nicht Prozedur!
07.09.2018 12:53:49
EtoPHG
Thorsten,
Da du nicht schilderst, was du genau willst, kann man nur schwer helfen, bzw. im Nebel
stochern. Alles was wir bis jetzt wissen ist Zitat: ch moechte einen Button ueber eine Variable ansprechen.
Das mikrige Codeschnipsel einfach mal in eine Ereignis-Prozedur zu werfen ist sicher nicht der richtige Ansatz. Also: Warum, Wann, unter welchen Bedingungen und Auslöser willst du das so?
Gruess Hansueli
Anzeige
AW: Die Frage war Klasse, und nicht Prozedur!
07.09.2018 13:44:11
Torsten
Hallo Hansueli,
Zur Erklaerung:
Ich erzeuge einen Button mit dem Code
Dim a As Long
a = Sheets("STEPS").Cells(Rows.Count, 2).End(xlUp).Row - 2
Dim btn As Button
Sheets("FORM").OLEObjects.Add(ClassType:="Forms.CommandButton.1", _
Link:=False, _
DisplayAsIcon:=False, _
Left:=ActiveSheet.Cells(6, 8).Left + 5, _
Top:=ActiveSheet.Cells(6, 8).Top, Width:=117#, Height:=27).Name = "CommandButton" & a
Dieser hat dann zum Beispiel die Bezeichnung CommandButton50, da in a eine 50 steht.
Da ich aber nicht weiss, welcher Button gerade erzeugt wird und ich ihm aus
Sheets("STEPS").Cells(Rows.Count, 3).End(xlUp).Row - 2

die Caption uebergeben will, brauche ich ja
Commandbutton50.Caption = Sheets("STEPS").Cells(a, 3).Value
Mein Problem ist das ich das "CommandButton" nur als String hinbekomme. Also mit Anfuehrungszeichen. Aber das funktioniert ja nicht, weil dann in der Variablen stehen wuerde:
"CommandButton"50
Wie kann ich den String in einen Objektnamen umwandeln?
Anzeige
Ich geb's auf...
07.09.2018 14:45:40
EtoPHG
Thorsten,
1. Also hat das Problem doch mit dem vorherigen Thread zu tun.
Zitat: Da ich aber nicht weiss, welcher Button gerade erzeugt wird Warum nicht? Du erzeugst in ja mit Code!
2. Du fütterst die Hilfesteller mit unsagbar kleinen, unzusammenhängenden Schnipseln an Daten (manchmal nicht mal Informationen!) und erwartest mehr Hellsehen, denn konkrete Hilfe. Wir sehen nicht was du warum anstellst!
3. Eine Frage wie Zitat: Wie kann ich den String in einen Objektnamen umwandeln? und Zitat: weil dann in der Variablen stehen wuerde: "CommandButton"50
deuten auf völlige Ahnungslosigkeit von Programmierung hin. Ein Objektname IST ein String! Bei einer Zuweisung wie Variable = "CommandButton" werden KEINE Anfuehrungszeichen in die Variable übertragen, sondern nur, was zwischen diesen steht!
...und Zitat: weil dann in der Variablen stehen wuerde: "CommandButton"50
5. Mit Basiskentnissen sich an dynamisch erstellte OLE-Controls zu wagen, finde ich nicht mutig, sondern fahrlässig. Das kann fast nur im Disaster enden.
Gruess Hansueli
Anzeige
AW: Ich geb's auf...
07.09.2018 16:42:43
Torsten
Ok lass es sein, ich habs inzwischen geloest. Auch ohne deine Besserwisserischen Kommentare.
AW: OT: Auch darum Besserwisser ;-)
07.09.2018 19:06:22
EtoPHG
Hallo Luc :-?
Danke, für die Verteidigung. Aber eigentlich sind mir Reaktionen wie die von Thorsten ziemlich schnurz.
Es zeigt sich auch in der Tatsache, dass er nun eine (Quasi)-Lösung seiner vorangehenden Anfrage gefunden hat, die aber niemals unter allen Vorausbedingungen gültige Resultate liefern kann und er dort mit keiner Silbe auf meinen Lösungsvorschlag eingegangen ist. Ich gönne niemandem Schlechtes, führ mich aber vielleicht zu oft als "Rufer in der Wüste" auf ;-), aber werde mich wieder kritisch äussern, wenn dann die Anfrage kommt "Wie kann ich ein Klick-Makro für ein dynamisch erstellten CommandButton per VBA erstellen?", oder ähnliches.
Gruess & schöWE Hansueli
Anzeige
Ja, verstehe ich! ;-) Dito schöWE! owT
08.09.2018 03:50:24
Luc:-?
:-?
Wieso ein neuer Thread?
07.09.2018 12:00:36
EtoPHG
Hallo,
Hat das nicht mit diesem Problem zu tun?
Gruess Hansueli
AW: Wieso ein neuer Thread?
07.09.2018 12:20:46
Torsten
nicht direkt
AW: Indirekt
07.09.2018 13:28:13
Gerd
Moin Torsten,
du kannst im unbekannten Code im VBA-Projekt deiner geheimen Datei
versuchsweis das Me durch Worksheets("NameDeinerTabelle") ersetzen. :-)
Gruß Gerd
AW: Indirekt
07.09.2018 13:59:07
Torsten
Das hatte ich schon versucht aber mit der Fehlermeldung:
Object doesn't support this property or method
AW: CommanButton ueber Variable ansprechen
07.09.2018 19:04:40
daniel
Hi
das Me.Controls(Steuerelementname als String) funktioniert nur in Userforms, aber nicht mit den Steuerelementen auf einem Tabellenblatt.
von daher sind Codeschnipsel immer mit Vorsicht zu genießen, wenn man den Zusammenhang nicht kennt.
Gruß Daniel
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige