Clever-Excel-Forum

Normale Version: Auslesen Namen von Steuerelement
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,
ich möchte gerne den Namen eines Steuerelementes auslesen. Ich benutze die Steuerelemente um Zeilen einer Kategorie ein- bzw. auszublenden anhand von der Färbung der Zelle. Aktuell ist es leider so, dass der Name der entsprechenden Kategorie noch im Code selbst enthalten ist. Da jedoch zukünftig sich auch die Namen der Buttons/Kategorien ändern können, möchte ich gerne einen direkten Bezug zu dem Steuerelement hinzufügen. Aktuell sieht mein Code folgendermaßen aus:

Aufruf der Funktion (in der Originaldatei sind mehrere Kategorien und Unterkategorien, daher tauchen hier auch RGBs auf die in der Beispieldatei nicht miteinbegriffen sind)
Code:
Sub A_Kat()
SelectFields_1 ("Projektmanagement")
End Sub
Code:
Function SelectFields_1(ButtonName As String)
Application.ScreenUpdating = False
Dim i, j As Integer
Dim LetzteZeile As Integer
LetzteZeile = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row

For i = 21 To LetzteZeile
If Cells(i, 2).Value = ButtonName Then
    j = i + 1
    'Ungleich Farbe Oberkategorie (blau) und Rahmen (dunkelblau)
    Do While Cells(j, 1).Interior.Color <> RGB(0, 94, 184) And Cells(j, 1).Interior.Color <> RGB(0, 51, 141)
        Rows(j).Hidden = Not Rows(j).Hidden
    j = j + 1
    Loop
    Application.ScreenUpdating = True
Exit Function
End If
Next i
End Function


Ist dies nur mit ActiveX-Steuerelementen möglich?

Vielen Dank im Voraus!
Hallo,
Sub A_Kat()
'SelectFields_1 ("Projektmanagement")
SelectFields_1 ActiveSheet.Buttons(Application.Caller).Text '(Beschriftung)
'oder
SelectFields_1 ActiveSheet.Buttons(Application.Caller).Name
End Sub
Gruß Uwe
Da war die Antwort um einiges einfacher als vermutet. Vielen Dank Uwe!
Erst:
Code:
Sub M_snb()
   Tabelle8.Buttons(1).Name = "projektmanagement"
   Tabelle8.Range("A23:A33").Name = "projektmanagement"
End Sub
Dann
Code:
Sub A_Kat()
    With Range(Application.Caller).EntireRow
        .Hidden = Not .Hidden
    End With
End Sub