Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1332to1336
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

Autofilter durch Button mit Auswahlliste ersetzen

Autofilter durch Button mit Auswahlliste ersetzen
27.09.2013 08:54:09
Christian
Guten Morgen alle zusammen,
um meine Liste nun so komfortabel wie möglich zu machen - möchte ich die Optik der Autofilter entfernen und durch VBA ersetzen. Da diese Aufgabenliste für viele verschiedene Arten genutzt werden soll - wäre es hier ein Button (habe ich schon eingefügt), der eine Selektion ermöglichen soll. Dies ist notwendig, weil diese Liste in großen Meetings aufgelegt wird und die Filter Buttons leider immer wieder die Sicht behindern (für Leute die die Liste nicht so oft sehen)
Hierzu soll die Auswahlliste aus dem zweiten Tabellenblatt (Parameter Spalte C) als Popup oder Form mit Checkboxen erscheinen in der ich wie im Autofilter selektieren kann. Anschließend soll die Checkliste dahingehend gefiltert werden.
Wirklich schön wäre es, wenn die Schrift des Buttons in rot gekennzeichnet werden könnte um aufzuzeigen, dass eine Selektion vorliegt. Des Weiteren sollen bei einer erneuten Selektion die alten Werte vorausgewählt sein.

Die Datei https://www.herber.de/bbs/user/87440.xlsm wurde aus Datenschutzgründen gelöscht

Ich bedanke mich für Eure Mühen und versuche es parallel wie gewohnt selbst =)
Grüße
Christian

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Autofilter durch Button mit Auswahlliste ersetzen
27.09.2013 09:17:38
Beverly
Hi Chrstian,
weshalb setzt du nicht einfach die Filterzeile in Zeile 6 anstelle 5? Dort verdecken sie überhaupt nichts.


AW: Autofilter durch Button mit Auswahlliste ersetzen
27.09.2013 12:22:32
Christian
Hallo Karin,
danke für die Antwort.
Leider reicht es mir nicht - bzw. ich soll diese Liste Management konform aufbereiten und es reicht anderen nicht. Die Arbeitsmappe selbst wird komplett gesperrt und Neuerungen sind in der fertigen Fassung nur noch über die Buttons einzufügen.
Da hier nur eine Beispielsdatei angehängt ist - und ich auch nicht ins genaue Detail gehen möchte bzw. darf gilt es nur zu verstehen, dass die Spalte Art nur die erste Selektion ist. Hier soll eine Userform mit Checkboxen wachsen, die alle Spalten auf einmal selektieren kann (was ich sonst über XX Filter machen müsste)
Grüße
Christian

Anzeige
AW: Autofilter durch Button mit Auswahlliste ersetzen
27.09.2013 12:54:46
Rudi
Hallo,
das wird aber ein Haufen Arbeit. Mal nur für 1 Kriterium (D)
Du brauchst:
Userform mit 1 Listbox (Style: ListstyleOption; Multiselect: Multiselectmulti)und 1 Button (OK)
1 Sheet namens Filter
1 Button auf dem Blatt.
Es werden nur die in D enthaltenen Werte in die LBx übernommen.
Private Sub UserForm_Activate()
Dim objList As Object, rngC As Range, i As Integer, j As Integer, tmp
Dim arrList
Set objList = CreateObject("Scripting.dictionary")
With ActiveSheet
For Each rngC In .Cells(7, 4).CurrentRegion.Columns(2).Cells
objList(rngC.Value) = 0
Next
End With
arrList = objList.keys
For i = 0 To UBound(arrList)
For j = i + 1 To UBound(arrList)
If arrList(i) > arrList(j) Then
tmp = arrList(i)
arrList(i) = arrList(j)
arrList(j) = tmp
End If
Next
Next
With lbxFilter
.List = arrList
For i = 0 To .ListCount - 1
If WorksheetFunction.CountIf(Sheets("Filter").Columns(1), .List(i)) Then
.Selected(i) = True
End If
Next
End With
End Sub
Private Sub cmdOK_Click()
Dim objList As Object, i As Integer, rngF As Range
Set objList = CreateObject("Scripting.dictionary")
Application.ScreenUpdating = False
objList(ActiveSheet.Cells(5, 4)) = 0
With lbxFilter
For i = 0 To .ListCount - 1
If .Selected(i) Then objList(.List(i)) = 0
Next
End With
With Sheets("Filter")
.Columns(1).ClearContents
.Cells(1, 1).Resize(objList.Count) = WorksheetFunction.Transpose(objList.keys)
Set rngF = .Cells(1, 1).CurrentRegion
End With
With ActiveSheet
If .FilterMode Then .ShowAllData
If (objList.Count - 1)  lbxFilter.ListCount Then
.Range(.Cells(5, 3), .Cells(Rows.Count, 3).End(xlUp)).Resize(, 6).AdvancedFilter _
Action:=xlFilterInPlace, CriteriaRange:=rngF, Unique:=False
End If
End With
Me.Hide
Unload Me
End Sub

Gruß
Rudi

Anzeige
AW: Autofilter durch Button mit Auswahlliste ersetzen
27.09.2013 13:14:56
Christian
Hallo Rudi,
das es Arbeit wird ist mir leider klar ^^. Aber ich erkenne auch den Nutzen einer einheitlichen Vorlage.
Vielen Dank für den ersten Wurf. Ich habe nun eine Userform (frmCheckbox) mit einer Listbox (inklusive vorgeschlagenen Einstellungen) und einem OK Button (cmdOK) eingefügt. Die beiden Scripte habe ich der Userform bzw. dem Button zugeordnet und lasse über den Selektions Button nun die frmCheckbox anzeigen.
Hier bekomme ich einen Fehler in folgender Codezeile= .List = arrList
Was habe ich übersehen?

AW: Autofilter durch Button mit Auswahlliste ersetzen
27.09.2013 22:32:55
Uduuh
Hallo,
hab mal deine Mappe und Rudis Code verheiratet.
https://www.herber.de/bbs/user/87449.xlsm
Gruß aus’m Pott
Udo

Anzeige

308 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige