Liste nach Zelleigabe filtern...
#1
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

   
Top
#2
Moin Wurstl

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

Warum willst du es kompliziert machen?
Wir sehen uns!
... Detlef

Meine Beiträge können Ironie oder Sarkasmus enthalten.

Top
#3
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.
Herzliche Grüße aus dem Rheinland
Jörg

[Windows 10, Microsoft 365]
Top
#4
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
Top
#5
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
Herzliche Grüße aus dem Rheinland
Jörg

[Windows 10, Microsoft 365]
Top
#6
vielen Dank Euch,
es funktioniert prima!!! Freu freu...
Merci!
VG Wurstl
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste