Supportnet / Forum / Tabellenkalkulation
Filter über Zeile
Frage
Hallo, weiß jemand ob und wie es möglich ist über eine Zeile zu filtern? Ich bekomme es immer nur über Spalten hin. Bevor jetzt jemand auf die Idee kommt ich könnte die Tabelle ja drehen. Ich möchte in beide Richtungen filtern.
Antwort 1 von coros
Hi Michigan,
mit nachfolgendem Makro kannst Du eine Zeile, deren Zeilennummer Du in ein Eingabefenster eingeben musst, filtern lassen. Das ist zwar ein bisschen mit der Pistole durchs Knie ins Herz geschossen, aber es funktioniert. Kopiere das nachfolgende Makro in ein StandardModul und starte es über eine Befehlsschaltfläche.
Bei dem Makro wird nach dem Start ein Eingabefenster (InputBox) eingeblendet, in der die zu sortierende Zeile eingetragen werden muss, geöffnet. Danach wird ein Tabellenblatt neu erstellt, in dem in Spalte A die Werte aus der zu sortierenden Zeile untereinander aufgeführt werden. Die Spalte A in dem neuen Blatt wird sortiert und dann werden die Daten über eine Schleife wieder in die Zeile zurückkopiert. Zum Schluss wird das neu eingefügte Tabellenblatt wieder gelöscht und man hat die sortierte Reihenfolge in der vorher angegebenen Spalte.
Ich hoffe, Du hast das so gemeint. Wenn nicht, bei Änderungen oder Problemen melde Dich.
Solltest Du nicht wissen, wie Du den Code in Deine Datei bekommst, dann schau mal auf meiner HP in der Rubrik Anleitungen und dort dann in der Anleitungsnummer 3 nach. Dort stelle ich dazu eine bebilderte Anleitung zur Verfügung, die Dir sicherlich helfen wird.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
mit nachfolgendem Makro kannst Du eine Zeile, deren Zeilennummer Du in ein Eingabefenster eingeben musst, filtern lassen. Das ist zwar ein bisschen mit der Pistole durchs Knie ins Herz geschossen, aber es funktioniert. Kopiere das nachfolgende Makro in ein StandardModul und starte es über eine Befehlsschaltfläche.
Option Explicit
Sub Nach_Zeile_Filtern()
Dim Zeile As Integer, Aktives_Blatt As String, Wiederholungen As Integer, _
letzte_Spalte As Integer
Application.ScreenUpdating = False
´On Error GoTo ERRORHANDLER
Zeile = InputBox("Welche Zeile soll gefiltert werden?", "Zeileneingabe")
Aktives_Blatt = ActiveSheet.Name
With Worksheets.Add
.Name = "Auswertung"
End With
letzte_Spalte = Sheets(Aktives_Blatt).Range("IV" & Zeile).End(xlToLeft).Column - 1
For Wiederholungen = 1 To letzte_Spalte
Sheets(Aktives_Blatt).Cells(Zeile, Wiederholungen).Copy _
Sheets("Auswertung").Cells(Sheets("Auswertung").Range("A65536").End(xlUp).Offset(1, 0).Row, 1)
Next
Sheets("Auswertung").Columns("A:A").Sort Key1:=Sheets("Auswertung").Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
For Wiederholungen = 1 To Sheets("Auswertung").Range("A65536").End(xlUp).Row
Sheets("Auswertung").Cells(Wiederholungen, 1).Copy Sheets(Aktives_Blatt).Cells(Zeile, Wiederholungen)
Next
Application.DisplayAlerts = False
Sheets("Auswertung").Delete
Application.DisplayAlerts = True
ERRORHANDLER:
End SubBei dem Makro wird nach dem Start ein Eingabefenster (InputBox) eingeblendet, in der die zu sortierende Zeile eingetragen werden muss, geöffnet. Danach wird ein Tabellenblatt neu erstellt, in dem in Spalte A die Werte aus der zu sortierenden Zeile untereinander aufgeführt werden. Die Spalte A in dem neuen Blatt wird sortiert und dann werden die Daten über eine Schleife wieder in die Zeile zurückkopiert. Zum Schluss wird das neu eingefügte Tabellenblatt wieder gelöscht und man hat die sortierte Reihenfolge in der vorher angegebenen Spalte.
Ich hoffe, Du hast das so gemeint. Wenn nicht, bei Änderungen oder Problemen melde Dich.
Solltest Du nicht wissen, wie Du den Code in Deine Datei bekommst, dann schau mal auf meiner HP in der Rubrik Anleitungen und dort dann in der Anleitungsnummer 3 nach. Dort stelle ich dazu eine bebilderte Anleitung zur Verfügung, die Dir sicherlich helfen wird.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 2 von Michigan
Danke schonmal für die Hilfe. Aber es ist leider nicht ganz das, was ich haben möchte. Diese Funktion sortiert ja leider nur eine Zeile.
Ich versuche mein Problem mal genauer zu erklären. Ich habe eine Tabelle mit ca. 200 Spalten und 1350 Zeilen. In dem Zellbereich K4 bis GX1358 ist teilweise ein X für eine Zuordnung eingetragen.
Ich möchte jetzt, dass ich eine Zeile angeben kann, und dann nach dieser so gefiltert wird, dass alle Spalten von K bis GX ausgeblendet werden, die kein X enthalten.
Die Reihenfolge der Spalten soll dabei erhalten bleiben. Wenn du mir da noch weiter helfen könntest, wäre ich dir sehr dankbar.
Schonmal danke und viele Grüße
Matthias
Ich versuche mein Problem mal genauer zu erklären. Ich habe eine Tabelle mit ca. 200 Spalten und 1350 Zeilen. In dem Zellbereich K4 bis GX1358 ist teilweise ein X für eine Zuordnung eingetragen.
Ich möchte jetzt, dass ich eine Zeile angeben kann, und dann nach dieser so gefiltert wird, dass alle Spalten von K bis GX ausgeblendet werden, die kein X enthalten.
Die Reihenfolge der Spalten soll dabei erhalten bleiben. Wenn du mir da noch weiter helfen könntest, wäre ich dir sehr dankbar.
Schonmal danke und viele Grüße
Matthias
Antwort 3 von JoeKe
Hallo Michigan,
folgendes Makro fragt in einer InputBox die Zeile ab nach der gefiltert werden soll und blendet dann alle Spalten in denne kein "x" steht aus.
Option Explicit
Sub filter()
Dim zeile As String, spalte As Integer
Application.ScreenUpdating = False
zeile = InputBox("Welche Zeile soll gefiltert werden?")
For spalte = 1 To 255
If Cells(zeile, spalte) <> "x" Then
Cells(zeile, spalte).Select
Selection.EntireColumn.Hidden = True
End If
Next
Application.ScreenUpdating = True
End Sub
MfG JöKe
folgendes Makro fragt in einer InputBox die Zeile ab nach der gefiltert werden soll und blendet dann alle Spalten in denne kein "x" steht aus.
Option Explicit
Sub filter()
Dim zeile As String, spalte As Integer
Application.ScreenUpdating = False
zeile = InputBox("Welche Zeile soll gefiltert werden?")
For spalte = 1 To 255
If Cells(zeile, spalte) <> "x" Then
Cells(zeile, spalte).Select
Selection.EntireColumn.Hidden = True
End If
Next
Application.ScreenUpdating = True
End Sub
MfG JöKe
Antwort 4 von coros
Hi Matthias,
irgendwie verstehe ich das nicht so ganz. Was soll denn nun sortiert werden, bzw. soll überhaupt sortiert werden? Wenn ich das richtig verstehe, möchtest Du eine Zeile angeben. Nun soll gesucht werden, ob und wo steht in der angegebenen Zeile ein X. Diese Spalte soll eingeblendet bleiben. Alle anderen Spalten, also alle die, die in der angegebenen Zeile kein x haben sollen ausgeblendet werden. Ist das richtig?
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
irgendwie verstehe ich das nicht so ganz. Was soll denn nun sortiert werden, bzw. soll überhaupt sortiert werden? Wenn ich das richtig verstehe, möchtest Du eine Zeile angeben. Nun soll gesucht werden, ob und wo steht in der angegebenen Zeile ein X. Diese Spalte soll eingeblendet bleiben. Alle anderen Spalten, also alle die, die in der angegebenen Zeile kein x haben sollen ausgeblendet werden. Ist das richtig?
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 5 von Michigan
Hallo ihr beiden.
Vielen Dank für eure Hilfe. Die Lösung von JöKe hat richtig gut funktioniert. Es war genau das, was ich gesucht habe.
Danke und Gruß
Matthias
Vielen Dank für eure Hilfe. Die Lösung von JöKe hat richtig gut funktioniert. Es war genau das, was ich gesucht habe.
Danke und Gruß
Matthias
Antwort 6 von JoeKe
Hallo Mathias,
freut mich, das ich dir helfen konnte und vielen Dank für die Rückinfo.
Schönen Tag noch
JöKe
freut mich, das ich dir helfen konnte und vielen Dank für die Rückinfo.
Schönen Tag noch
JöKe

