Live-Forum - Die aktuellen Beiträge
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

SpezialFilter mit KomboBoxWerten

SpezialFilter mit KomboBoxWerten
Knatterkopf
Hi liebe leute,
hab da ein ein kleines Wissenproblem.
Finde in keinem Beispiel wie das "Spezial"-Filterkriterium aus kombiBox-Inhalten zugewiesen wird.
Sprich ich befülle 2 Kombiboxen so:
Private Sub Worksheet_Activate()
Dim varPhase As Variant, varRolle As Variant
With DropdownBauphase
.Clear
varPhase = Array("BBG", "EBG", "PVL")
.List = varPhase
End With
With DropdownRolle
.Clear
varRolle = Array("AA", "AB", "AC", "AD", "AE", "AF", "AG", "AK", "AL")
.List = varRolle
End With
With TextBox1
.Value = Format(Date, "dd.mm.yyyy")
.Font.Size = 16
.TextAlign = fmTextAlignCenter
End With
WeekBefore.List = Array("1", "2", "3", "4", "5")
WeekAfter.List = Array("1", "2", "3", "4", "5")
End Sub

Dann möchte ich eine Liste (Range) nach diesen Boxwerten Filtern. In welcher Art und weise gefiltert werden soll, ist hoffentlich aus dem code in den If anweisungen ersichtlich.
Problem ist nur, dass ich kaum Ahnung vom Code der Spezialfilter habe und es noch nicht so ganz verstehe. Liegt wohl an der Zeile wo das FilterCrit gesetzt wird.
Dem wird normalerweise eine Range zugewiesen das dann im einzelnen so definiert wird:
FilterCrit(2, 1).FormulaR1C1
Zeile 2, Spalte 1 aus der CritRange und das Formula Row1Col1 verstehe ich absolut nicht.
Fakt ist, dass ich aus den Komboboxen die CritRange bestimmen möchte und sehr glücklich wäre, wenn mir das jmd. ausführlich erklären könnte =)
Private Sub FilterButton_Click()
Dim rngBereich As Range, FilterCrit As Range, iCalc As Integer, bootExit As Boolean
With Application
iCalc = .Calculation
.ScreenUpdating = False
.Calculation = xlCalculationManual
With Tabelle1
If .FilterMode Then .ShowAllData
.Cells.EntireRow.Hidden = False
Set rngBereich = .Range("A5", .Cells(.Rows.Count, 6).End(xlUp))
End With
With rngBereich
Set FilterCrit = .Cells(1, .Columns.Count).Resize(2, 1) 'Hier ist noch ein Wurm drin und warum .Resize(2,1)
With Tabelle1
If DropdownBauphase.Value = "" And DropdownRolle = "" Then
bootExit = True
ElseIf DropdownRolle.Value = "" Then FilterCrit(2, 1).FormulaR1C1 = "=RC2=DropdownBauphase.value"
ElseIf DropdownBauphase.Value = "" Then
FilterCrit(2, 1).FormulaR1C1 = "= OR(RC3=DropdownRolle.value, RC4=DropdownRolle.value, RC6=DropdownRolle.value)"
Else
FilterCrit(2, 1).FormulaR1C1 = "= AND(RC2=DropdownBauphase.value, OR(RC3=DropdownRolle.value, RC4=DropdownRolle.value, RC6=DropdownRolle.value))"
End If
End With
If Not booExit Then
.AdvancedFilter xlFilterInPlace, FilterCrit
FilterCrit(2, 1).ClearContents
End If
End With
.Calculation = iCalc
.ScreenUpdating = True
End With
End Sub
Vielen Dank und VG
Adrian

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Benutzer
Anzeige
was ich sehe...
09.05.2011 09:09:35
Tino
Hallo,
die Dropdown- Boxen füllst Du mit Text,
also müssten die Werte in der Formel noch mit Anführungszeichen versehen werden.
In etwa so. (ungetestet in etwa so)
... = "=RC2=""" & Tabelle1.DropdownBauphase.Value & """"
.Cells(1, .Columns.Count)
Dies die Zelle in Zeile 1 in der letzten Spalte.
Resize(2, 1)
Bewirkt das diese Zelle um eine Zelle (Zeile) erweitert wird. (siehe auch in der Hilfe)
.Cells(1, .Columns.Count).Resize(2, 1)
Dies sind also die zwei ersten Zellen in der letzten Spalten.
Den Rest kann ich ohne die Tabelle nicht beurteilen.
Gruß Tino
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige