Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1356to1360
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

spezielle Anwendung des Filters

spezielle Anwendung des Filters
19.04.2014 08:40:33
Christian
Hallo an alle,
bitte helft mir. Ich suche eine Möglichkeit, den Filter speziell anzuwenden und zwar so, dass ich einige Zellen in Spalte B markieren kann (markieren, weil man sich bei 20 sonst jedesmal notieren muss was man wollte, wenn man bei einer mehrere 10000 Zeilen großen Mappe erstmal nach oben scrollt um den Filter zu aktivieren) und dann der Filter jede Zeile stehen lässt, die in Spalte B einen der zuvor markierten Texte hat und die Zelle in Spalte F nicht leer ist. Hat da jemand eine Idee und kann mir helfen?
Gruß und vielen Dank
Chris

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
fixiere die oberste Zeile
19.04.2014 08:53:05
Matthias
Hallo
Ich gehe mal davon aus das die Filterzeile die Zeile(1) ist
Dann so:

  • Ansicht

  • Fenster fixieren

  • oberste Zeile fixieren


Jetzt kannst Du scrollen so lange Du willst,
die Zeile 1 bleibt ja sichtbar.
Gruß Matthias

AW: fixiere die oberste Zeile
19.04.2014 09:06:17
Christian
Hallo Matthias,
danke, aber dann habe ich immer noch das Problem, die 20 Texte aus einer Liste von ca. 3000 heraussuchen zu müssen, daher auch meine Frage, ob es auch mit vorherigem markieren möglich ist.
Gruß
Christian

AW: spezielle Anwendung des Filters
19.04.2014 09:20:26
fcs
Hallo Chris,
bei Verwendung des Autofilters kann man per Makro die Werte der selektierten Zellen in einem Datenarray sammeln und dann den Autofilter entsprechend setzen.
Das Makro selbst kannst du in der Datei mit den Daten in einem allgemeinen Modul speichern oder auch in deiner persönlichen Makroarbeitsmappe.
Gruß
Franz
Sub Filtern_Spalte_B_und_F()
'Filtert im Autofilter im aktiven Blatt die Daten nach den Werten in den selektierten _
Zellen  in Spalte B und allen nicht leeren Zeilen in Spalte F an
Dim arrFilter(), intJ As Integer, rngSelection As Range, rngZelle As Range
Dim wks As Worksheet
On Error GoTo Fehler
Set wks = ActiveSheet
Set rngSelection = Selection
'Werte in selektierten Zellen in Daten-Array sammeln
For Each rngZelle In rngSelection
If rngZelle.Column = 2 Then
intJ = intJ + 1
ReDim Preserve arrFilter(1 To intJ)
arrFilter(intJ) = rngZelle.Value
End If
Next
If intJ > 0 Then
With wks
'Prüfen, ob Autofilter aktiv/Filter gesetzt
If .AutoFilterMode = True Then
If .FilterMode = True Then .ShowAllData
Else
.UsedRange.AutoFilter
End If
'Autofilter neu setzen
.AutoFilter.Range.AutoFilter Field:=2, Criteria1:=arrFilter, Operator:=xlFilterValues
.AutoFilter.Range.AutoFilter Field:=6, Criteria1:=""
End With
Else
MsgBox "In Spalte B wurden keine Zellen selektiert!", _
vbOKOnly, "Makro: Filtern_Spalte_B_und_F"
End If
Fehler:
With Err
Select Case .Number
Case 0 'alles OK
Case Else
MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description & vbLf & vbLf _
& "Aktuell selektiertes Objekt ist vermutlich keine Zelle!"
End Select
End With
End Sub

Anzeige
AW: spezielle Anwendung des Filters
19.04.2014 09:40:17
Christian
Hallo Franz,
vielen Dank. zu 99% das was ich meinte. Mich wundert nur noch eines, Zeile 1 ist leer, da der Filter ja die erste Zeile als Überschrift ansieht, ich aber nicht jedesmal beim Sortieren darauf achten will, dass der Haken Daten haben Überschriften drin ist. Das Makro aktiviert wie gewünscht den Autofilter, aber in Zeile 2, wohl da Zeile 1 leer ist, also bleibt Zeile 2 immer stehen, egal ob der Text in Spalte B vorher ausgewählt wurde oder nicht. Hast du da noch eine Idee?
Gruß
Christian

AW: spezielle Anwendung des Filters
19.04.2014 11:27:58
fcs
Hallo Christian,
der einfachste Weg, zu vermeiden, dass Excel die 1. Datenzeile unerwünscht als Titelzeile für den Autofilter nimmt:
Du aktivierst vor dem 1. Sortieren, wenn die Überschriften noch in Zeile 2 stehen, den Autofilter für die Liste. Dann kannst du sowohl über die Autofilterdropdowns sortieren als auch über den Sortierdialog. Über die Überschriften beim Sortieren brauchst du dir dann keine Gedanken machen.
Alternativ kannst du vom Makro in Zeile 2 eine Zeile mit Hilfsspalten-Titeln einfügen lassen.
Gruß
Franz
Sub Filtern_Spalte_B_und_F()
'Filtert im Autofilter im aktiven Blatt die Daten nach den Werten selektierten Zellen _
in Spalte B und allen nicht leeren Zeilen in Spalte F an
Dim arrFilter(), intJ As Integer, rngSelection As Range, rngZelle As Range
Dim wks As Worksheet
On Error GoTo Fehler
Set wks = ActiveSheet
Set rngSelection = Selection
'Werte in selektierten Zellen in Daten-Array sammeln
For Each rngZelle In rngSelection
If rngZelle.Column = 2 Then
intJ = intJ + 1
ReDim Preserve arrFilter(1 To intJ)
arrFilter(intJ) = rngZelle.Value
End If
Next
If intJ > 0 Then
With wks
'Prüfen, ob Autofilter aktiv/Filter gesetzt
If .AutoFilterMode = True Then
If .FilterMode = True Then .ShowAllData
Else
If Not .Cells(2, 1) = "F_01" Then
For intJ = 1 To .UsedRange.Columns.Count
.Cells(2, intJ) = "F_" & Format(intJ, "00")
Next
End If
.UsedRange.AutoFilter
End If
'Autofilter neu setzen
.AutoFilter.Range.AutoFilter Field:=2, Criteria1:=arrFilter, Operator:=xlFilterValues
.AutoFilter.Range.AutoFilter Field:=6, Criteria1:=""
End With
Else
MsgBox "In Spalte B wurden keine Zellen selektiert!", _
vbOKOnly, "Makro: Filtern_Spalte_B_und_F"
End If
Fehler:
With Err
Select Case .Number
Case 0 'alles OK
Case Else
MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description & vbLf & vbLf _
& "Aktuell selektiertes Objekt ist vermutlich keine Zelle!"
End Select
End With
End Sub

Anzeige
AW: spezielle Anwendung des Filters
19.04.2014 16:29:39
Christian
Hallo Franz, jetzt hab ich Mist gebaut, habe dich falsch verstanden, das letzte Makro ausgeführt und jetzt ist meine Zeile 2 überschrieben. Naja Glück gehabt, Excel-Prozess im Task-Manager beendet, zum Glück wurde die letzte Auto-Wiederherstellungsdatei davor erstellt, Zeile ist wiederhergestellt. Kann man nicht den Dropdown Menüs in dem Makro sagen, dass sie in die erste Zeile sollen? Ich kann ja auch durch markieren einer Zeile bestimmen, in welche Zeile die Menüs sollen, wenn ich es händig mache.
Gruß
Christian

AW: spezielle Anwendung des Filters
20.04.2014 09:14:11
fcs
Hallo Christian,
ich hatt beim Rumprobieren versehentlich eine Codezeile wieder gelöscht, die eine Leerzeile einfügt bevor die Hilfsspaltentitel eingetragen werden.
        If Not .Cells(2, 1) = "F_01" Then
.Rows(2).Insert shift:=xlShiftDown                'zusätzliche Zeile
For intJ = 1 To .UsedRange.Columns.Count
.Cells(2, intJ) = "F_" & Format(intJ, "00")
Next
End If
Wenn in Zeile 1 keine Daten stehen, dann nimmt Excel automatisch die 1. Zeile mit Daten als Titelzeile fürden Autofilter. Dieser Autoatismus läßt sich nicht verhindern. Ich hatte versucht, die Zeile 1 als 1. Zeile des Autofilterbereiches vorzugeben. Hat per Makro nicht funktioniert; scheinbar arbeitet Excel hier unter VBA etwas anders als im Handbetrieb.
Gruß
Franz
P.S.: Beim Testen von Makros immer mit einer Kopie der Originaldatei arbeiten bzw. vorher eine SIcherheitskopie anlegen.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige