in einem Arbeitsblatt habe ich eine Menge Comboboxen mit Namen cbo_filter_value_1 bis cbo_filter_value_n, für die ich eine eigene Klasse "cboGroup_Change" gemacht habe. Funktioniert bestens.
Nun sollte ich aber noch den Namen resp. die Nummer der Combobox haben, deren Wert geändert wurde. Wie kriege ich das hin?
Der Code:
Klassenmodul cls_combo
Option Explicit
Public WithEvents cboGroup As MSForms.ComboBox
Private Sub cboGroup_Change()
Dim group_is As String
With cboGroup
If .Text "" Then
nummer_der_combobox = ?
Call clear_filter_values(nummer_der_combobox, .Text)
End If
End With
End Sub
Code im Tabellenblatt:
Dim combobx() As New cls_combo
Private Sub Worksheet_Activate()
Dim object_count As Long
Dim cbo_number As Long
Dim cbo_name As String
Call set_constants
cbo_number = 0
For object_count = 1 To sh_lager.OLEObjects.Count
cbo_name = sh_lager.OLEObjects(object_count).Name
If InStr(1, cbo_name, "cbo_filter_value_", vbTextCompare) > 0 Then
cbo_number = cbo_number + 1
ReDim Preserve combobx(cbo_number)
Set combobx(cbo_number).cboGroup = sh_lager.OLEObjects(object_count).Object
End If
Next
End Sub
Gruss yogi