Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

on action bei mehreren subs ausgeführt

Forumthread: on action bei mehreren subs ausgeführt

on action bei mehreren subs ausgeführt
Knatterkopf
Hallo liebe Leute,
ich habe folgendes Problem:
Die OnAction Eigenschaft wird mehrfach bzw. für alle CmdButtons ausgeführt. Diese sind in einer PopUpListe zusammengefasst. Siehe Code.
Ich möchte jedoch, dass nur die OnAction Eigenschaft des eben gedrückten Buttons auf die zugehörige Prozedur verweist.
Sprich es soll nur die Prozedur ausgeführt werden, auf dessen Button gedrückt wurde. Nicht alle!!
Hier die Symbolleiste mit meinen Buttons:
Private Sub Workbook_Open()
Dim symbL As CommandBar, Param As CommandBarControl, Button As CommandBarButton
Dim Button2 As CommandBarButton, Button3 As CommandBarButton, Button4 As CommandBarButton
On Error Resume Next
Set symb = Application.CommandBars.Add("Symbolleiste", Position:=msoBarTop, Temporary:=True)
With symb
.Left = 0
.Visible = True
End With
Set Param = Application.CommandBars("Symbolleiste").Controls.Add(Type:=msoControlPopup)
With Param
.Caption = "Ansicht"
.TooltipText = "Ansicht auswählen"
.Width = 60
.Height = 30
End With
Set Button = Param.Controls.Add
With Button
.BeginGroup = True
.Caption = "EK-1-S"
.Style = msoButtonIconAndCaption
.TooltipText = "EK-1-S anzeigen"
.OnAction = "!Tabelle10.FilterEK1S"
End With
Set Button2 = Param.Controls.Add
With Button2
.BeginGroup = True
.Caption = "Umbaubeauftragte"
.Style = msoButtonIconAndCaption
.TooltipText = "Umbaubeauftragte anzeigen"
.OnAction = "!Tabelle10.FilterUmbauBA"
End With
Set Button3 = Param.Controls.Add
With Button3
.BeginGroup = True
.Caption = "Personalreferent"
.Style = msoButtonIconAndCaption
.TooltipText = "Personalreferent anzeigen"
.OnAction = "!Tabelle10.FilterPersRef"
End With
Set Button4 = symbL.Controls.Add
With Button4
.BeginGroup = True
.Caption = "Alle"
.Style = msoButtonIconAndCaption
.TooltipText = "Alle anzeigen"
.OnAction = "!Tabelle10.FilterCancle"
End With
End Sub
Und hier die Prozeduren:
Sub FilterEK1S()
Dim Datenblatt As Worksheet, StartRow As Integer, StartCol As Integer, ColEnd As Long, RowEnd As Long, Area As Range, rngHidden As Range, i As Long
Set Datenblatt = Worksheets("Vakanzenliste")
With Datenblatt
.Cells.EntireColumn.Hidden = False
StartRow = 3
StartCol = 1
ColEnd = .Cells(StartRow, Columns.Count).End(xlToLeft).Column
Set Area = .Range(.Cells(StartRow, StartCol), .Cells(StartRow, ColEnd))
For Each cell In Area
If Not InStr(cell, "g") Then
If rngHidden Is Nothing Then
Set rngHidden = cell
Else
Set rngHidden = Union(rngHidden, cell)
End If
End If
Next
End With
If Not rngHidden Is Nothing Then rngHidden.EntireColumn.Hidden = True
End Sub
Private Sub FilterPersRef()
Dim Datenblatt As Worksheet, StartRow As Integer, StartCol As Integer, ColEnd As Long, RowEnd  _
As Long, Area As Range, rngHidden As Range, i As Long
Set Datenblatt = Worksheets("Vakanzenliste")
With Datenblatt
.Cells.EntireColumn.Hidden = False
StartRow = 3
StartCol = 1
ColEnd = .Cells(StartRow, Columns.Count).End(xlToLeft).Column
Set Area = .Range(.Cells(StartRow, StartCol), .Cells(StartRow, ColEnd))
For Each cell In Area
If Not InStr(cell, "p") Then
If rngHidden Is Nothing Then
Set rngHidden = cell
Else
Set rngHidden = Union(rngHidden, cell)
End If
End If
Next
End With
If Not rngHidden Is Nothing Then rngHidden.EntireColumn.Hidden = True
End Sub
Private Sub FilterUmbauBA()
Dim Datenblatt As Worksheet, StartRow As Integer, StartCol As Integer, ColEnd As Long, RowEnd  _
As Long, Area As Range, rngHidden As Range, i As Long
Set Datenblatt = Worksheets("Vakanzenliste")
With Datenblatt
.Cells.EntireColumn.Hidden = False
StartRow = 3
StartCol = 1
ColEnd = .Cells(StartRow, Columns.Count).End(xlToLeft).Column
Set Area = .Range(.Cells(StartRow, StartCol), .Cells(StartRow, ColEnd))
For Each cell In Area
If Not InStr(cell, "r") Then
If rngHidden Is Nothing Then
Set rngHidden = cell
Else
Set rngHidden = Union(rngHidden, cell)
End If
End If
Next
End With
If Not rngHidden Is Nothing Then rngHidden.EntireColumn.Hidden = True
End Sub
Private Sub FilterCancle()
Worksheets("Vakanzenliste").Cells.EntireColumn.Hidden = False
End Sub
Vielen Dank für jegliche Hilfe
LG
Adrian
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: on action bei mehreren subs ausgeführt
24.05.2011 13:43:06
Knatterkopf
Hallo,
ich bin ja so ein Ei!!
Es funktioniert ja, ich habe in meiner Sub einen Fehler entdeckt!
Entschuldigt bitte =)
hier:
If Not InStr(cell, "r") Then
das haut so nicht!
habe es mit false überprüft und jetzt geht es.
Für Verbesserungsvorschläge bin ich jedoch gerne zu haben!
LG
Adrian
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige