online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon Rollisen vom 16.09.2022, 20:29 Options

Excel 2003

Hallo!

Ist es möglich, in Excel über mehrere Spalten dynamische Autofilter zu setzen ohne das ich die Pfeile der Filter betätige, sondern den Suchbegriff über die betreffenden Spalten eingebe und das mir dann die Zeilen mit dem Begriff angezeigt werden?

ich bedanke mich schon mal im vorraus
und wünsche noch einen schönen Tag!

Viele Grüße

Ralle


Antwort schreiben

Antwort 1 von rainberg vom 16.09.2022, 22:25 Options

Hallo,

das geht nur mit dem Spezialfilter (wenn ich Dich richtig verstehe)

Gruss
Rainer

Antwort 2 von coros vom 17.09.2022, 06:59 Options

Hallo,

anders als Rainer bin ich der Meinung, dass das nur über ein Makro realisierbar ist, da man beim Spezialfilter ja auch in der Symbolleiste auf den entsprechenden Button klicken und dann in die Felder ausfüllen muss. Du wolltest aber ja in einer Zelle oder mehreren Zellen den Begriff eingeben und das geht meines Erachtens nach nur über ein Makro.

MfG,
Oliver

Antwort 3 von nighty vom 17.09.2022, 10:07 Options

hi all :-)

hier ein beispiel

gruss nighty

http://www.supportnet.de/t/2336580

Antwort 4 von nighty vom 18.09.2022, 23:17 Options

hi all :-)

noch ein beispiel eines zeilen/spaltenfilters

erlaubt sind >1 begriffe getrennt durch ein leerzeichen

zuruecksetzung des filters erfolgt durch leereingabe

allerdings noch nicht auf geschwindigkeit getrimmt und noch nicht optimiert :-))

gruss nighty

Option Explicit
Sub Filter()
    Call EventsOff
    Dim EinGabe As String
    ReDim sammel(1) As String
    Dim zeilen0 As Integer, zeilen1 As Long, zaehler1 As Integer, zaehler2 As Integer, zaehler3 As Integer, zaehler4 As Integer, zaehler6 As Integer
    Dim spalten0 As Integer, spalten1 As Integer
    Rem hier deinen filterbereich festlegen
    Rem von bis
    zeilen0 = 1
    zeilen1 = 5
    Rem von bis
    spalten0 = 1
    spalten1 = 5
    With ActiveSheet
        For zaehler1 = zeilen0 To zeilen1
            .Rows(zaehler1 & ":" & zaehler1).EntireRow.Hidden = False
        Next zaehler1
        For zaehler1 = spalten0 To spalten1
            .Cells(1, zaehler1).EntireColumn.Hidden = False
        Next zaehler1
        EinGabe = InputBox("Eingabe des Obstes")
        If EinGabe = "" Then End
        zaehler4 = 1
        For zaehler1 = 1 To Len(EinGabe)
            If Mid(EinGabe, zaehler1, 1) <> " " Then
                sammel(zaehler4) = sammel(zaehler4) + Mid(EinGabe, zaehler1, 1)
            Else
                zaehler4 = zaehler4 + 1
                ReDim Preserve sammel(zaehler4)
            End If
        Next zaehler1
        For zaehler1 = zeilen0 To zeilen1
            For zaehler2 = spalten0 To spalten1
                For zaehler3 = 1 To zaehler4
                    If UCase(Cells(zaehler1, zaehler2)) = UCase(sammel(zaehler3)) Then
                        zaehler6 = zaehler6 + 1
                    End If
                Next zaehler3
            Next zaehler2
            If zaehler6 = 0 Then
                .Rows(zaehler1 & ":" & zaehler1).EntireRow.Hidden = True
            Else
                zaehler6 = 0
            End If
        Next zaehler1
        zaehler6 = 0
        For zaehler1 = spalten0 To spalten1
            For zaehler2 = zeilen0 To zeilen1
                For zaehler3 = 1 To zaehler4
                    If UCase(Cells(zaehler2, zaehler1)) = UCase(sammel(zaehler3)) Then
                        zaehler6 = zaehler6 + 1
                    End If
                Next zaehler3
            Next zaehler2
            If zaehler6 = 0 Then
                .Cells(1, zaehler1).EntireColumn.Hidden = True
            Else
                zaehler6 = 0
            End If
        Next zaehler1
    End With
    Call EventsOn
End Sub  

Public Sub EventsOn()
With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = xlCalculationAutomatic
End With
End Sub

Public Sub EventsOff()
    With Application
        .ScreenUpdating = False
        .EnableEvents = False
        .Calculation = xlCalculationManual
    End With
End Sub  

Antwort 5 von Beverly vom 19.09.2022, 08:23 Options

Hi,

schau dir mal das Beispiel Autofilter dynamisch von meiner HP an, das sollte deiner beschriebenen Aufgabenstellung entsprechen.

Bis später,
Karin

Antwort 6 von Rollisen vom 19.09.2022, 16:20 Options

Hallo zusammen!

Bin leider heute erst dazu gekommen mir Eure Antworten anzuschauen. Ein herzliches Danke schön an alle. Um es gleich vorwegzunehmen, Beverly's dynamische Autofilter ist genau das was ich brauche. Ich bin begeistert! Beverly, ich hätte da noch eine Frage. Ich habe 8 Spalten mit unterschiedlichen Einträgen z. B. Text, Text mit Zahlen usw. Klappt alles super. Aber, in der letzten Spalte macht der Filter Probleme. Dort habe ich nur Zahlenwerte zwischen 001 und 800. Nach Eingabe einer Zahl mit vorangestellten Nullen z.B. 008 zeigt er mir nichts an. Er filtert zwar so wie es aussieht, aber es kommt keine Anzeige. Wie gesagt, es passiert nur mit vorrangestellten Nullen, alle anderen Zahlen werden gefiltert angezeigt. Vielleicht hast Du ja eine Lösung. Wenn nicht ist auch nicht schlimm. Deine Filter sind auch so schon Spitze.

Herzliche Grüße

Ralle

Antwort 7 von Beverly vom 19.09.2022, 16:41 Options

Hi,

sind die Zellen als Text formatiert oder als Zahl mit benutzerdefiniertem Zahlenformat?

Bis später,
Karin

Antwort 8 von Rollisen vom 19.09.2022, 17:27 Options

Hi,

benutzerdefiniert. Habe auch schon mit Text probiert, geht leider auch nicht. Als Standard oder Zahl geht logischerweise auch nicht, da mir dann die Nullen fehlen.

Gruß
Ralle

Antwort 9 von Beverly vom 19.09.2022, 18:32 Options

Hi,

dann kannst du den Code dahingehend erweitern, dass bei Zahlen noch die Spalte geprüft wird und wenn es die betreffende ist, dann musst du als Kriterium auch das Format mit angeben - so nach diesem Prinzip (in meinem Beispiel ist es Spalte E):

'               Eingabe wurde gelöscht
                If raZelle = "" Then
'                   Autofilter für das betreffende Fald zurücksetzen
                    .AutoFilter Field:=raZelle.Column + 1 - ActiveSheet.AutoFilter.Range(1).Column
'                   in die betreffende Zelle eintragen
                    raZelle = "Suchbegriff eingeben"
                Else
'                   Suchkriterium ist eine Zahl
                    If IsNumeric(raZelle) Then
                        If raZelle.Column = 5 Then                                     '<== für Spalte E
'                            Zellen sind benutzerdefiniert formatiert
                            .AutoFilter Field:=raZelle.Column + 1 - ActiveSheet.AutoFilter.Range(1).Column, _
                                Criteria1:="=" & Format(raZelle, "000")
                        Else
'                            Zellen sind als Standard formatiert
                            .AutoFilter Field:=raZelle.Column + 1 - ActiveSheet.AutoFilter.Range(1).Column, _
                                Criteria1:="=" & raZelle
                        End If
'                   Suchkriterium ist ein Datum
                    ElseIf IsDate(raZelle) Then
'                       Autofilter für das betreffende Feld setzen
'                       es werden 2 Kriterien verwendet, weil mit Kriterium "=" das Datum nicht gefiltert wird
                        .AutoFilter Field:=raZelle.Column + 1 - ActiveSheet.AutoFilter.Range(1).Column, _
                            Criteria1:=">=" & raZelle.Value2, Criteria2:="<=" & raZelle.Value2
                    Else
'                      Autofilter für das betreffende Feld setzen, Filterkriterium "Enthält"
                        .AutoFilter Field:=raZelle.Column + 1 - ActiveSheet.AutoFilter.Range(1).Column, _
                            Criteria1:="=*" & raZelle & "*"
                    End If
                End If

Bis später,
Karin

Antwort 10 von rollisen vom 19.09.2022, 21:17 Options

Hi,

ich hatte vorhin schon geantwortet, aber ich weiß nicht ob das angekommen ist, da mein PC abgestürzt ist.
Beverly, hat super geklappt mit dem neuen Code. Hab Herzlichen Dank für Deine Bemühungen.

Gruß

Ralle

Ähnliche Themen

Dropdown Auswahlliste in Excel 2003
Ralfman  30.06.2009 - 555 Hits - 2 Antworten

Sortieren mit Excel 2003
wolf951  17.02.2010 - 154 Hits - 3 Antworten

Excel 2003
Diiter  02.03.2010 - 276 Hits - 8 Antworten

Excel 2003 Währungsformat 0,00 und 0.00
StilleQuelle  12.03.2010 - 395 Hits - 6 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026