Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1172to1176
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

Click-event bei OLE-Steuerelementen auswerten

Click-event bei OLE-Steuerelementen auswerten
Stephan
Hallo Ihr VBA-Profis,
ich habe ein kleines Problemchen mit Steuerelementen im Tabellenblatt.
Der Ablauf im Code ist wie folgt:
-Tabellenblatt wird erstellt
-ein Commandbutton wird in dem Tabellenblatt erzeugt
und nun sollen Click-Events des Buttons ausgewertet werden.
Ich hab das versucht mittels einer Klasse zu programmieren,
beim Compilieren kommt zwar keine Fehlermeldung,
aber das Event wird nicht ausgeführt. Woran liegts?
Hier der Code im Hauptmodul:
_____________________________________________________________
Sub steuerelemente()
'Button
Dim oCommand1 As clscommandbutton
Set oCommand1 = New clscommandbutton
Dim oComTemp As Object
'Button definieren
Set oComTemp = Worksheets(4).OLEObjects.Add(ClassType:="Forms.CommandButton.1", Link:=False _
, DisplayAsIcon:=False, Left:=780, Top:=25.5, Width:=72, Height:=24)
oComTemp.ShapeRange.ScaleWidth 1.65, msoFalse, msoScaleFromTopLeft
oComTemp.ShapeRange.ScaleHeight 1.56, msoFalse, msoScaleFromTopLeft
'dem Objekt oCommand1 der Klasse clscommandbuttton mit der Methode DerCmd
'wird das Steuerelement oComTemp zugewiesen
Set oCommand1.DerCmd = Worksheets(4).OLEObjects(2).Object
End Sub
________________________________________________________
Hier der Code im Klassenmodul namens clscommandbutton:
'mach mit den Ereignissen was
Public WithEvents DerCmd As MSForms.CommandButton

Private Sub DerCmd_Click()
MsgBox ("jupp")
End Sub

______________________________
Die Messagebox wird beim Klick des Buttons nicht angezeigt.-Wieso?

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Click-event bei OLE-Steuerelementen auswerten
28.08.2010 14:40:11
Nepumuk
Hallo,
1. Deine Klasse ist nur auf Prozedurebene deklariert. Mit dem Ende der Prozedur (End Sub) ist die Klasse wieder zerstört.
2. Das erstellen eines AktiveX-Controls in einer Tabelle lässt die Mappe kurz in den Entwurfsmodus wechseln. Dadurch kannst du den Verweis an die Klasse nicht innerhalb der selben Prozedur erzeugen.
Du musst also 1. die Klasenvariable lokal im Modul deklarieren. 2. Den Verweis an die Klasse in einer separaten Prozedur erzeugen, indem du diese per OnTime-Methode aus der Button-Erzeugen-Prozedur aufrufst.
Gruß
Nepumuk
AW: Click-event bei OLE-Steuerelementen auswerten
30.08.2010 14:07:34
Stephan
-Hab den Code jetzt wie folgt geändert, geht aber immer noch nicht :-(.
Wo ist jetzt noch der Wurm drin?
Sub steuerelemente_erstellen()
'Button
Dim oComTemp As Object
'Button definieren
Set oComTemp = Worksheets(4).OLEObjects.Add(ClassType:="Forms.CommandButton.1", Link:=False _
, DisplayAsIcon:=False, Left:=780, Top:=25.5, Width:=72, Height:=24)
oComTemp.ShapeRange.ScaleWidth 1.65, msoFalse, msoScaleFromTopLeft
oComTemp.ShapeRange.ScaleHeight 1.56, msoFalse, msoScaleFromTopLeft
Application.OnTime Now + TimeValue("00:00:01"), "Aktivieren"
End Sub
Sub Aktivieren()
Dim oCommand1 As clscommandbutton
Set oCommand1 = New clscommandbutton
'dem Objekt oCommand1 der Klasse clscommandbuttton mit der Methode DerCmd
'wird das Steuerelement oComTemp zugewiesen
Set oCommand1.DerCmd = Worksheets(4).OLEObjects(2).Object
End Sub ____________________________
'Klassenmodul namens clscommandbutton
'mach mit den Ereignissen was
Public WithEvents DerCmd As MSForms.CommandButton
Private Sub DerCmd_Click()
MsgBox ("jupp")
End Sub

Anzeige
AW: Click-event bei OLE-Steuerelementen auswerten
31.08.2010 22:47:48
Nepumuk
Hallo,
du hast die Klasse wieder auf Prozedurebene deklariert. Sprich nach End Sub ist die Klasse wieder zerstört. Die Deklaration muss auf Modulebene erfolgen.
Gruß
Nepumuk

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige