Clever-Excel-Forum

Normale Version: Liste nach Zelleigabe filtern...
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,
ich hab ne Liste welche nach Eingabe in Zelle L3 (Zahl)
die Liste beginnend von B2 bis ca. 1000 Zeilen
filtern soll...
Gefiltert soll nach den Werten in Spalte ab C7 (siehe Screenshot)
ich hab erst mit VBA begonnen und jede Menge Schrott
erstellt, der nicht funktioniert...
Bräuchte bitte Hilfe dazu...
Viele Grüße Wurstl

[attachment=30931]
Moin Wurstl

Man kann es kompliziert machen.
Man kann es einfach machen.

Warum willst du es kompliziert machen?
Hi,

meinst du so:

Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
   
    If Target.Address = "$L$3" Then
   
        Dim FilterSpalte As Integer
        Dim FilterMich
       
        FilterSpalte = 2
        FilterMich = Range("L3")
       
        With ActiveSheet
            .Range("B6:F16").AutoFilter Field:=FilterSpalte, Criteria1:=FilterMich
            If Range("B6:F16").Columns(1).SpecialCells(xlCellTypeVisible).Cells.Count - 1 = 0 Then
                .ShowAllData
            End If
        End With
   
    End If
   
End Sub

Den "Range(...)" kann man natürlich "schöner" machen.
Hi,
vielen Dank erstmal. Nun hab ich mal folgenden Code gemacht, der auch funktioniert, jedoch
werden mir in allen Spalten diese blöden Filterpfeile gezeigt... Wie kriegt man denn sowas weg?
Der Befehl: VisibleDropDown:=False greift wohl hier nicht...

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
  If Target = Range("K3") Then
   
    If Tabelle1.Cells(3, 11) > 0 Then
      Tabelle1.AutoFilterMode = False

      Tabelle1.Range("A6").AutoFilter _
      Field:=2, _
      Criteria1:=Tabelle1.Range("K3").Value, _
      VisibleDropDown:=False
     
      Range("K3:L3").Select
    End If
   
    If Tabelle1.Cells(3, 11) = 0 Then
      Selection.AutoFilter
      Range("K3:L3").Select
    End If
  End If
End Sub
Hi,

du musst das Ausblenden der Pfeile für jede Spalte durchführen:

Dim rngZelle As Range
Dim ZeileA As Long
Dim ZeileE As Long
Dim SpalteA As Long
Dim SpalteE As Long

' Anfangszeile deines Bereichs:
ZeileA = ...

' Anfangsspalte deines Bereichs:
SpalteA = ...

' Endzeile deines Bereichs:
ZeileE = ...

' dein bisheriger Code ...

For Each rngZelle In Range(Cells(ZeileA, SpalteA), Cells(ZeileE, SpalteE))
    rngZelle.AutoFilter Field:=rngZelle.Column, Visibledropdown:=False
Next
vielen Dank Euch,
es funktioniert prima!!! Freu freu...
Merci!
VG Wurstl