Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.04.2024 14:18:05
28.04.2024 13:43:14
Anzeige
Archiv - Navigation
1772to1776
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

Button_Click_Events

Button_Click_Events
27.07.2020 00:19:56
Sleepyhead
Guten Morgen zusammen,
ich habe hier nur eine allgemeine Frage.
Aktuell erstelle ich eine Liste mit der Möglichkeit 100 Obergruppen mit je 100 Untergruppen einzugeben.
Für jeden Obergruppe der Liste möchte ich die Möglichkeit haben quasi leere Untergruppen per Button_Click zu verstecken, da diese noch nicht benötigt werden und die Liste somit übersichtlicher wird. Und natürlich je einen Button um in der jeweiligen Liste die nächste Zeile wieder anzuzeigen um einen neuen Eintrag vorzunehmen.
Nun zu meiner Frage:
damit ich nicht 2x je 100 Button_Click_Events mit je den selben Subs nur verschiedenen Startvariablen anlegen muss, gibt es eine Möglichkeit quasi nur 2 Button_Click_Events anzulegen und jedem Button nur eine andere Startvariable zu geben?
Oder würde es da zu Komplikationen führen da quasi jeder Button auf das selbe Button_Click_Event zugreift?
Falls es diese Möglichkeit gibt, könnte mir jemand dieses zeigen und ggf. erklären?
Vielen vielen Dank im Voraus für eure Mühe,
euer Sleepyhead

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Button_Click_Events
27.07.2020 08:20:05
fcs
Hallo SleepyHead,
die Möglichkeiten hängen jetzt vom gewählten Typ Button ab den du im Tabellenblatt verwendest.
Active-X-Steuerelement
...oder
Formularsteuerelement
Bei Active-X-Schaltfäche benötigst du für jede Schaltfläche ein Click-Event-Makro.
Du kannst hier aber für "neu" und "leere ausblenden" jeweils eine Unter-Sub anlegen, an die die Startzeile als Parameter übergeben wird.
Beispiel:
'Beispiel für Active-X-Steuerelemente
Private Sub CommandButton1_Click()
'Gruppe 1 neue Untergruppe
Call prcNeu(Startzeile:=2)
End Sub
Private Sub CommandButton2_Click()
'Gruppe 1 leere Untergruppen ausblenden
Call prcLeereAusblenden(Startzeile:=2)
End Sub
'Beispiel für Active-X-Steuerelemente
Private Sub CommandButton3_Click()
'Gruppe 1 neue Untergruppe
Call prcNeu(Startzeile:=103)
End Sub
Private Sub CommandButton4_Click()
'Gruppe 1 leere Untergruppen ausblenden
Call prcLeereAusblenden(Startzeile:=103)
End Sub
Private Sub prcNeu(Startzeile As Long)
Dim Zeile_1 As Long, Zeile_L As Long
Zeile_1 = Startzeile
Zeile_L = Startzeile + 99
With Me
Zeile_1 = .Cells(Zeile_L + 1, 2).End(xlUp).Row
If Zeile_1 = Zeile_L Then
MsgBox "Alle Zeilen für Untergruppen sind belegt"
Else
If Zeile_1 

Bei den Formular-Steuerelementen kannst du nach dem gleichen Schema arbeiten. Es gibt aber auch die möglichkeit, dass wenn aus der Position der linken oberen Ecke der Schaltflächen die Startzeile eindeutig ermittelt werden kann, alle Schaltflächen das gleiche Makro zugewiesen bekommen.
Beipiel:

'Code in einem allgemeinen Modul der Datei
'Beispiel bei Verwendung von Schaltflächen aus Formularsteuerelementen, die das gleiche Makro  _
aufrufen sollen
'Die Position (linke obere Ecke der Schaltflächen wird zur Berechnung der Startzeile verwendet.
Sub prcSchaltflaecheNeu()
Dim wks As Worksheet
Dim objShape As Shape
Dim Startzeile As Long, Zeile_1 As Long, Zeile_L As Long
Set wks = ActiveSheet
Set objShape = wks.Shapes(Application.Caller)
Startzeile = objShape.TopLeftCell.Row
Zeile_1 = Startzeile
Zeile_L = Startzeile + 99
With wks
Do
Zeile_1 = Zeile_1 + 1
If Zeile_1 > Zeile_L Then Exit Do
If .Cells(Zeile_1, 2).Text = "" Then
.Range(.Rows(Startzeile), .Rows(Zeile_1)).Hidden = False
.Cells(Zeile_1, 2).Select
Exit Do
End If
Loop
End With
End Sub
Sub prcSchaltflaecheLeereAusblenden()
Dim wks As Worksheet
Dim objShape As Shape
Dim Startzeile As Long, Zeile_1 As Long, Zeile_L As Long
Set wks = ActiveSheet
Set objShape = wks.Shapes(Application.Caller)
Startzeile = objShape.TopLeftCell.Row
Zeile_1 = Startzeile
Zeile_L = Startzeile + 99
With wks
Do
Zeile_1 = Zeile_1 + 1
If Zeile_1 > Zeile_L Then Exit Do
If .Cells(Zeile_1, 2).Text = "" Then
.Range(.Rows(Zeile_1), .Rows(Zeile_L)).Hidden = True
Exit Do
End If
Loop
End With
End Sub

LG
Franz
Anzeige
AW: Button_Click_Events
27.07.2020 22:14:48
Sleepyhead
Vielen vielen Dank Franz,
funktioniert einwandfrei und dazu noch bestens erklärt, danke!
Ich habe mich für Formular-Steuerelemente entschieden, das macht die ganze Sache viel einfacher.
LG
Sleepyhead

71 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige