CommandButtons in Tabelle erstellen und über Klasse ansprech
20.12.2024 09:11:48
sigiF
warum wird das Click Ereignis nicht ausgelöst?
Danke!
Gruß Sigi
'Standard Modul
Option Explicit
Option Compare Text
Dim Buttons() As New clsButton
Sub TicketButtons()
Dim ws As Worksheet
Dim i As Long
Dim btn As MSForms.CommandButton
Dim TicketInfo As Variant
Call DeleteTicketButtons
' Arbeitsblatt festlegen
Set ws = ThisWorkbook.Sheets("Start")
' Ticketinformationen (Zeile, URL, Suchtext)
TicketInfo = Array( _
Array(2, "https://www.vrs.de/fileadmin/01_Tickets/Downloads_und_Informationen/Preistabelle_Regeltarif_und_HandyTicket_01012025.pdf", "Preisübersicht :"), _
Array(3, "https://www.vrs.de/tickets/ticket-finden/einzelticket", "EinzelTicket : VRS Website"), _
Array(4, "https://www.vrs.de/tickets/ticket-finden/4erticket", "4erEinzelTicket : VRS Website"))
' Schaltflächen erstellen
For i = LBound(TicketInfo) To UBound(TicketInfo)
Set btn = ws.OLEObjects.Add(ClassType:="Forms.CommandButton.1", _
Left:=ws.Cells(TicketInfo(i)(0), 3).Left, _
Top:=ws.Cells(TicketInfo(i)(0), 3).Top, _
Width:=100, Height:=20).Object
btn.Caption = Split(TicketInfo(i)(2), ":")(0)
'Schaltfläche in Klasse einfügen
ReDim Preserve Buttons(1 To i + 1)
Set Buttons(i + 1).btn = btn
Buttons(i + 1).TicketURL = TicketInfo(i)(1)
Buttons(i + 1).TicketSuch = TicketInfo(i)(2)
Next i
End Sub
Sub DeleteTicketButtons()
Dim ws As Worksheet
Dim i As Long
' Arbeitsblatt festlegen
Set ws = ThisWorkbook.Sheets("Start")
' Alle Schaltflächen löschen
On Error Resume Next
For i = LBound(Buttons) To UBound(Buttons)
On Error Resume Next
ws.OLEObjects(Buttons(i).btn.Name).Delete
On Error GoTo 0
Next i
' Array zurücksetzen
Erase Buttons
End Sub
'Klassenmodul Name clsButton
Option Explicit
Option Compare Text
Public WithEvents btn As MSForms.CommandButton
Public TicketURL As String
Public TicketSuch As String
Private Sub btn_Click()
MsgBox "Klasse: clsButton"
Call Browser_Open(TicketURL, TicketSuch)
End Sub
Anzeige