Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1968to1972
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

Tabelle Filter Filterkriterium aus aktiver Zelle

Tabelle Filter Filterkriterium aus aktiver Zelle
21.03.2024 10:37:47
Florian
Hallo liebe Excel-Freunde und Profis!

Hab mal wieder eine Frage zu einer intelligenten Excel-Tabelle:

Die Tabelle umfasst viele Spalten von welchen ich bei den meisten "Nur" via Drag+Drop die aus einem PDF-Datensatz reinkopiere.

Auf Grund von Kriterien diverser Spalten muss ich andere Spalten "händisch" ergänzen.

Da Die Zeilenanzahlen sehr umfangreich sind/werden, ist es mittlerweile nervig das Kriterium via Textfilter immer händisch einzugeben.

Deshalb meine Frage an euch.

Kann ich mittels Makro Das Kriterium aus der aktiven Zelle in der jeweiligen Spalte übernehmen.

In der nachfolgenden Beispieldatei würde ich also gerne nach dem Kriterium aus der aktiven Zelle (C5 = "Hans") per Makro in der Spalte C filtern lassen.

https://www.herber.de/bbs/user/168204.xls

Oder Nach "Züricher" in der Splate B, . . . .

Besten Dank für jede Rückmeldung und euer Engagement.

Florian

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabelle Filter Filterkriterium aus aktiver Zelle
21.03.2024 11:10:04
Zahlendreher
Hallo!

Das ist ohne Weiteres möglich.
Aufgrund deiner Beispieldatei kannst du es z. B. über das Worksheet_SelectionChange-Event machen:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)


Dim tblCol As Integer

With Tabelle1.ListObjects("Tabelle1")
If Not Intersect(Target, .DataBodyRange) Is Nothing Then
tblCol = Target.Column - .Range.Column + 1
.Range.AutoFilter Field:=tblCol, Criteria1:=Target.Value, Operator:=xlAnd
End If
End With

End Sub


Beste Grüße
Anzeige
AW: Tabelle Filter Filterkriterium aus aktiver Zelle
21.03.2024 11:14:43
Yal
Hallo Florian,

klar geht das.

Zeichne eine Makro auf, in dem Du eine Spalte filterst. Beim Start der Aufzeichnung wird dir angeboten, dem Code eine Buchstaben-Kombi zu zuweisen. Lege Strg+b (weil nicht durch iwas anderes belegt).

Dann schau Dir den Code an und finde die Stelle, wo es nach deiner Eingabe gefiltert wird.
Zwei Stellen sind zu ändern: die Spalte, die zu filtern ist, muss die aktive Spalte entsprechen (ActiveCell.Column) und die Filteranweisung muss nach dem Inhalt der Zelle umgetauscht: ActiveCell.Value

Starte mit diesen Schritten. Wenn Du stockst, lade deinen Zwischenstand hier hoch. Ein Autowerkstatt* kann auch nicht viel machen, wenn dein Auto zu Hause steht.

(*: wobei wir uns klar als "Helfer" und nicht als "Reparierer/Erlediger" sehen. Ziel ist die Erweiterung deiner Kompetenz ;-)

VG
Yal
Anzeige
AW: Im folgenden Beispiel...
21.03.2024 13:07:11
Florian
Hallo an alle Antwortenden!

Vielen vielen Dank an euch alle - ihr habt mir wieder einmal sehr weitergeholfen!

Schöne Grüße
Florian
AW: Im folgenden Beispiel...
21.03.2024 16:28:20
Herbert Grom
Servus Case,

ich habe gesehen, dass du ein xlsb-File postest. Kannst du mir bitte den Grund/Vorteil dafür sagen?

Servus
Ich arbeite grundsätzlich...
21.03.2024 17:28:40
Case
Hallo Herbert, :-)

... mit dem XLSB-Format. Das ist bei großen Datenmengen - nach meinem Empfinden - schneller im Aufbau und Speichern. Es nimmt auch weniger Speicherplatz in Anspruch - sprich die Dateien sind bis zu 20% kleiner.

Servus
Case
Anzeige
AW: Ich arbeite grundsätzlich...
21.03.2024 17:29:46
Herbert Grom
Vielen Dank, alles klar!

Servus
Wäre es auch möglich . . .
21.03.2024 16:31:41
Florian
Hallo Case,

. . . bei deiner Lösung das Makro so zu adaptieren, dass ich via Doppelklick auch mehrere Filter miteinander kombinieren kann?

Nochmals vielen Dank im Voraus für dein/euer Engagement!

Liebe Grüße Florian
Wie stellst du dir das...
21.03.2024 17:30:20
Case
Hallo Florian, :-)

... praktisch vor? Wie möchtest du da vorgehen? Gib mal ein Beispiel. ;-)

Servus
Case
AW: Wie stellst du dir das...
22.03.2024 06:47:34
Florian
Hallo Case,

na ja wenn ich zuerst in die Spalte Straße via Doppelklick filtere ist alles ok.

Wenn ich nun zusätzlich die Spalte PLZ filtern möchte, wird der Filter der Straße aufgehoben und nur der Filter auf PLZ angewandt.

Ich hätte jedoch gerne den 2. bis n-ten Filter jeweils zusätzlich zu dem/den bereits bestehenden.

Hier ein Beispiel wo mein "Kauderwelsch" vielleicht besser verständlich ist.
https://www.herber.de/bbs/user/168240.xlsb

Ich hätte es gerne wie in der rechten Tabelle. . .

Der Absolute Oberwahnsinn wäre nun, wenn man zudem via Doppelklick auf die Spaltenüberschrift noch den Filter der jeweiligen Spalte deaktivieren könnte.

Nochmals vielen vielen Dank für dein Engagement!

Liebe Grüße
Florian

Anzeige
Ich sehe die Lösung weiterhin nicht...
22.03.2024 10:23:15
Yal
.. in der Verwendung eines Ereignisses (zu wenig flexible), sondern in der Vergabe von Tastenkombi:

Strg+b: es wird eine Filterungsmerkmal hinzugefügt
Strg+Shift+b ( also Strg+B): es werden alle Filter zurückgesetzt

Eine Tastenkombi kann man auf einem existierende Sub nachträglich ablegen: im Excel, Alt+F8, Makro markieren und "Optionen..." drücken.

VG
Yal
AW: Ich sehe die Lösung weiterhin nicht...
22.03.2024 11:47:13
Florian
Hi YAL,

ich bekomme es mit deiner Methode leider nicht hin - gerade nochmals versucht . . . .

hier meine Beispieldatei . . .
https://www.herber.de/bbs/user/168247.xlsb

Besten Dank im Voraus für dein Engagement!

Schöne Grüße
Florian
Anzeige
AW: Ich sehe die Lösung weiterhin nicht...
22.03.2024 13:20:52
Yal
Hallo Florian,

ich vermute, dass die ZUordnung von Tastenkombination erst möglcih ist, wenn der Code in einem Module vorliegt (nicht in dem Codepane von "Tabelle1")

Es reicht dann folgende Code:
Const cTab = "Tabelle2"


Sub Filter_hinzufügen()
' Tastenkombination: Strg+b
With Range(cTab).Parent.ListObjects(cTab)
If Not Intersect(ActiveCell, .DataBodyRange) Is Nothing Then _
.HeaderRowRange.AutoFilter Field:=ActiveCell.Column - .DataBodyRange.Column + 1, Criteria1:="=" & ActiveCell.Text
End With
End Sub

Sub Filter_zurückstellen()
' Tastenkombination: Strg+B (Grosses B, also Strg+Shift+b)
On Error Resume Next
If Range(cTab).Parent.Name = ActiveSheet.Name Then Range(cTab).Parent.ListObjects(cTab).AutoFilter.ShowAllData
End Sub


Schau dir ebenfalls den Code von Case. Er berücksichtigt mehr mögliche Fälle. Bin aber der Meinung, dass diese minimalistische Variant hier deinen Bedarf abdecken könnte.

VG
Yal
Anzeige
Hier mal ein Beispiel...
22.03.2024 11:39:42
Case
Hallo Florian, :-)

... mit Rechtsklick: ;-)

https://www.herber.de/bbs/user/168246.xlsb

Der Doppelklick ist auch noch mit drin. Auch Filter zurücksetzen. Beschreibung in der Datei. Ob das unflexibel ist kann ich nicht beurteilen.

Servus
Case
AW: Hier mal ein Beispiel...
25.03.2024 07:37:36
Florian
Hi Leute!

Ihr seid meine Helden . . . Die Variante von Chase ist genau (wenn nicht sogar mehr) das was ich mir gewünscht/erhofft habe . . . .

Ich finde euer Engagement einfach top - vielen vielen Dank dafür!

Wünsche euch eine schöne Arbeitswoche und einen braven Osterhasen . . .

LG Florian
Anzeige
Uups. Beispieldatei übersehen. Sorry owT
21.03.2024 11:15:38
Yal

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige