Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
1212to1216
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

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

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

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige