Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
368to372
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
368to372
368to372
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Makro Commandbutton zuweisen

Makro Commandbutton zuweisen
27.01.2004 19:29:08
Olaf
hallo zusammen,
ich möchte einem per Makro in ein Tabellenblatt eingefügten Commandbutton ein Makro zuweisen.
Leider lässt sich die OnAction Eigenschaft nicht direkt ansprechen.
Hintergund ist der, dass ich ein Tabellenblatt mit Steuerelementen komplett per Makro erzeugen möchte.
Für einen Tipp wäre ich echt dankbar, da ich jetzt schon ziemlich lange nach eine Lösung suche.
Gruß, Olaf

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

Betreff
Datum
Anwender
Anzeige
AW: Makro Commandbutton zuweisen
27.01.2004 19:36:27
Josef Ehrensberger
Hallo Olaf!
Im Bearbeitungsmodus (Geodreieck-Symbol in der Steuerelemente-Leiste)
Rechtsklick auf den Button > Code anzeigen.
Im VBA - Editor schreibst Du nun zwischen den bereits
vorhandenen Code, deine Anweisungen.

Private Sub CommandButton1_Click()
'Dein Code
End Sub

Gruß Sepp
AW: Makro Commandbutton zuweisen
27.01.2004 19:47:09
Olaf
Hallo Sepp,
vielen Dank für Deinen schnellen Tipp.
Aber das ist nicht das, was ich suche.
Ich erzeuge mit eine Makro das Tabellenblatt und die Steuerelemente. Dann soll das Makro dem eingefügten Commandbutton ein Makro zuweisen.
"Von Hand" soll da gar nicht eingegriffen werden.
Gruß, Olaf
Anzeige
AW: Makro Commandbutton zuweisen
27.01.2004 20:01:08
K.Rola
Hallo,
meinst du einen aus den Forms: Forms.CommandButton.1 ?
Gruß K.Rola
AW: Makro Commandbutton zuweisen
27.01.2004 22:16:42
Olaf
Hallo K.Rola,
genau den meine ich. Der müsste doch laut Excel-Hilfe der richtige sein.
Der Tipp von Dieter funktioniert, ist aber in der Hilfe so nicht nachzulesen.
Gruß, Olaf
AW: Makro Commandbutton zuweisen
27.01.2004 22:37:35
K.Rola
Hallo,
was Dieter vorgeschlagen hat klappt so nicht mit Commanbutton. Das ist
da etwas komplexer.
Gruß K.Rola
AW: Makro Commandbutton zuweisen
27.01.2004 22:41:45
Olaf
Hallo K.Rola,
wie erfolgt denn da die Zuweisung ?
Letztendlich muss ja auch hier eine Prozedur zugewiesen werden.
Gruß,
Olaf
AW: Makro Commandbutton zuweisen
27.01.2004 22:47:57
K.Rola
Hallo,
die Prozedur für Commandbutton steht im Klassenmodul der jeweiligen Tabelle.
Füg mal einen Commandbutton ein und Doppelklick, das siehst du den Coderahmen.
Gruß K.Rola
Anzeige
AW: Makro Commandbutton zuweisen
27.01.2004 23:03:04
Olaf
Hallo K.Rola,
jo, ich hab´s kapiert.
Jetzt habe ich aber das Tabellenblatt gerade erst neu erzeugt. Sein Klassenmodul wird damit automatich auch neu erzeugt.
Wie kriege ich meine fertige Prozedur jetzt in dieses Klassenmodul ?
Ein einfaches importieren der Klassendatei bringt nix, weil das Modul dann ja separat und nicht als Klassenmodul des Tabellenblattes existiert.
Seufz... :-)
Gruß, Olaf
AW: Makro Commandbutton zuweisen
27.01.2004 23:45:35
K.Rola
Hallo,
ein Klassenmodul im Tabellenblatt kannst du eh nicht importieren.
Du kanns den Code zur Laufzeit erzeugen, aber das führt zu weit.
Gruß K.Rola
AW: Makro Commandbutton zuweisen
27.01.2004 23:55:29
Olaf
Hallo K.Rola,
schade eigentlich. Ich glaube, ich muss mir die Sache noch einmal neu durch den Kopf gehen lassen. Aber Du hast mich zumindest schonmal in die richtige Richtung gebracht.
Vielen Dank,
Olaf
Anzeige
AW: Makro Commandbutton zuweisen
28.01.2004 00:30:29
K.Rola
Hallo,
ich weiß nicht, was du vorhasst, aber warum willst du unbedingt alles zur Laufzeit erzeugen? Das ist naturgemäß wesentlich aufwändiger, als die Objekte zur Entwurfszeit
zu erstellen und die Eigenschaften einzustellen.
Ggf. gibts ja einen anderen Weg oder einen gesunden Kompromiss.
Gruß K.Rola
AW: Makro Commandbutton zuweisen
28.01.2004 12:56:00
Olaf
Hallo K.Rola,
ich habe das Problem, dass ich in einer größeren Arbeitsmappe, die mehrere Leute mit jeweils eigenen Daten nutzen, einzelne Tabellenblätter (mit Steuerelemententen) hinzufügen oder austauschen können muss.
Stelle ich auf den Tabellenblättern feste Bezüge zu anderen Tabellenblättern her, um die Steuerelemente zu "betanken" und stelle nur diese Tabellenblätter den anderen Nutzern zur Verfügung (bzw. lasse sie in deren Arbeitsmappen importieren) stimmen all diese Bezüge natürlich nicht mehr. Deshalb der Umweg über die automatische Erstellung der Tabellenblätter.
Meine Erfahrungen mit VBA sind nur begrenzt. Ich habe früher mal mit anderen Programmiersprachen entwickelt, auch objektorientiert. Bei VBA mach ich wahrscheinlich viele Dinge zu umständlich, wühle mich immer durch die Hilfedateien und fluche ständig über die "seltsame" Objektorientierung von VBA :-)
Gruß, Olaf
Anzeige
AW: Makro Commandbutton zuweisen
27.01.2004 20:57:21
Dieter Klemke
Hallo Olaf,
wenn du einen Button aus der älteren Symbolleiste "Formular" verwendest, dann kannst du dein Problem z.B. folgendermaßen lösen:

Sub Button_erzeugen()
Dim cmd As Button
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets(1)
Set cmd = ws.Buttons.Add(Left:=120.0, _
Top:=90.0, _
Width:=100.0, _
Height:=40.0)
cmd.Caption = "Neu"
cmd.OnAction = "TestProgramm"
End Sub


Sub TestProgramm()
MsgBox "TestProgramm"
End Sub

MfG
Dieter
AW: Makro Commandbutton zuweisen
27.01.2004 22:14:45
Olaf
Hallo Dieter,
vielen Dank für Deinen Tipp.
Es funktioniert und damit bin ich schon einmal einen Riesenschritt weiter.
In der Hilfe steht Buttons unter Ausgeblendete Eigenschaften und Methoden
Ist die Kompatibilität zu Excel 2000 und XP ok ?
Als Ersatz sind hier die ActiveX-Steuerelemente angegeben und genau da bin ich nicht weitergekommen.
Mit pSheet.OLEObjects.Add ClassType:="Forms.CommandButton.1" ... kann ich zwar eine Schaltfläche erzeugen, ich kann ihr aber
keine Prozedur zuweisen, die ausgeführt werden soll.
Ich kann der Schaltfläche noch nicht einmal manuell auf dem Tabellenblatt ein Makro zuweisen. Der Eintrag ist ausgeblendet.
Gruß,
Olaf
Anzeige
AW: Makro Commandbutton zuweisen
28.01.2004 12:36:51
Dieter Klemke
Hallo Olaf,
das was ich dir geschickt habe, funktioniert auch unter Excel 2000 und Excel XP einwandfrei. Allerdings muss man sich ein Problem dabei klarmachen: Es handelt sich hierbei um die Objekttechnik aus der Zeit von Excel 5. Diese Technik wurde beim Übergang zu Excel 97 abgelöst. Allerdings wird bislang die alte Technik von Microsoft weiterhin unterstützt (s. z.B. die verborgenen Einträge im Objektkatalog zum Button-Objekt).
Es könnte aber der Tag kommen, an dem Microsoft die Sache über Bord wirft.
Vielleicht hat dein Programm bis dahin aber sein Geld schon verdient.
MfG
Dieter
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige