Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
460to464
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
460to464
460to464
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Filtern eines markierten Bereichs

Filtern eines markierten Bereichs
26.07.2004 19:45:21
Jan
Hallo,
ich möchte gerne einen von mir vorher markierten Zell- bzw. Spaltenbereich nach einem Suchbegriff filtern, so dass alle Zeilen angezeigt werden, die den Suchbegriff (auch als Teilzeichenkette oder Teilwort) in mindestens einer Spalte enthält.
Mit folgendem Makro, basierend auf dem Autofilter, kann ich auf irgendeine Zelle in einem Arbeitsblatt klicken und die betreffende Spalte nach dem Suchbegriff filtern, den ich über ein Input-Fenster eingebe. Wenn ich hier aber einen Spaltenbereich markiere wird immer nur die eine (ich glaube, die erste markierte) Spalte berücksichtigt. Vielleicht muss hier mit dem Spezialfilter gearbeitet werden?

Sub Substring_Filtern()
'Irgendeine Zelle in der Spalte
'anwählen, die gefiltert werden soll
'Begriff in Input-Fenster eingeben
Dim Spalte As Variant
Dim Begriff As Variant
Spalte = Selection.Column
Begriff = InputBox("Bitte Suchbegriff eingeben...", "Teilzeichenketten-Suche")
Columns("A:I").AutoFilter _
Field:=Spalte, _
Criteria1:="=*" & Begriff & "*", Operator:=xlAnd
End Sub

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Filtern eines markierten Bereichs
26.07.2004 21:37:42
Uwe Küstner
Hallo Jan,
probier mal dieses Makro. Es arbeitet ohne Filter.
Um alle Zeilen wieder einzublenden, in die Inputbox nichts eingeben.

Sub Substring_Filtern()
'Irgendeine Zelle in der Spalte
'anwählen, die gefiltert werden soll
'Begriff in Input-Fenster eingeben
Dim Begriff As Variant
Dim rngZelle As Range
Dim rngSichtbar As Range
Dim rngSuchbereich As Range
Begriff = InputBox("Bitte Suchbegriff eingeben...", "Teilzeichenketten-Suche")
Begriff = "*" & Begriff & "*"
Set rngSuchbereich = Application.Intersect(ActiveSheet.UsedRange, Selection.EntireColumn)
For Each rngZelle In rngSuchbereich.Cells
If rngZelle.Text Like Begriff Then
If rngSichtbar Is Nothing Then
Set rngSichtbar = rngZelle
Else
Set rngSichtbar = Application.Union(rngSichtbar, rngZelle)
End If
End If
Next rngZelle
If Not rngSichtbar Is Nothing Then
rngSuchbereich.EntireRow.Hidden = True
rngSichtbar.EntireRow.Hidden = False
Rows(1).Hidden = False
Else
MsgBox "Keine Zellen gefunden!"
End If
End Sub
Gruß Uwe
Anzeige
AW: Filtern eines markierten Bereichs
27.07.2004 13:18:29
Jan
Hallo Uwe,
vielen Dank für das Makro. Klappt bei mir beim ersten Ausprobieren sehr gut. Ist offensichtlich "Case-sensitiv", wie ich festgestellt habe und der Filter bezieht anscheinend alle Zeilen der markierten Spalten ein, auch wenn nur ein Teilbereich markiert wird (was ich aber auch in der Regel so benutzen würde). Nur einmal ist das Makro irgendwie abgestürzt, als ich in eine Testdatei einige Zeilen untereinander reinkopiert habe und versehentlich die unterste Zeile des Arbeitsblattes mit Daten belegt habe, so dass dazwischen immens viele Leerzeilen standen (ist aber sicherlich keine übliche Art einer Tabelle).
Viele Grüße
Jan
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige