Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1076to1080
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

Spalten Filtern mit VBA

Spalten Filtern mit VBA
28.05.2009 13:00:50
Uwe
Halli Hallo
Ich bräuchte einen Code, der nach einem Begriff (steht in Zelle B3) sucht und alle Spalten filtert, in denen der Begriff in Zeile 4 auftaucht.
Wie kann ich das Bewerkstelligen?
Wenn möglich ohne Klickfläche. Nach eingeben des Scuhkriteriums in Zelle B3 und entern, soll sofort gefiltert werden.
Jemand einen Vorschlag?
LG Uwe

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spalten Filtern mit VBA
28.05.2009 13:57:43
NoNet
Hallo Uwe,
da der Autofilter nur Zeilen filtern kann, benötigt man dazu ein programmiertes Makro.
Kopiere den folgenden VBA Code in das Klassenmodul des Tabellenblattes im VBA-Editor :
VBA-Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rngZelle As Range, strAdr As String
    If Not Intersect(Target, [B3]) Is Nothing Then  'Wenn Eingabe in B3 erfolgte
        Cells.Columns.Hidden = True                 'Alle Spalten zunächst ausblenden
        Columns("A:B").Hidden = False               'Spalten A:B wieder einblenden
        With Rows(4)                                'Suche Wert in kompletter Zeile 4
            Set rngZelle = .Find([B3].Value)        'Suche nach Wert der Zelle B3
            If Not rngZelle Is Nothing Then strAdr = rngZelle.Address
            While Not rngZelle Is Nothing
                rngZelle.EntireColumn.Hidden = False 'Spalte mit gefundenem Wert einblenden
                Set rngZelle = .FindNext(after:=rngZelle)   'Weitersuchen
                If rngZelle.Address = strAdr Then Set rngZelle = Nothing
            Wend
        End With
    End If
    Set rngZelle = Nothing
End Sub
Gruß, NoNet
AW: Spalten Filtern mit VBA
Uwe

Hallo Danke, funktioniert zunächst sehr gut!
Wenn ich den Wert in Zelle B3 allerdings wieder lösche, dann werden alle Spalten versteckt und ich muss sie manuel wieder einblenden. Kann man das noch verfeinern?
Ausserdem findet er bei dem Suchbegriff "i" sowohl "i" für Italien, als auch "fin" für Finnland. Kann man das verhindern?
LG Uwe
Spalten exakt Filtern mit VBA
NoNet

Hallo Uwe,
hier das angepasste Makro :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngZelle As Range, strAdr As String
If Not Intersect(Target, [B3]) Is Nothing Then      'Wenn Eingabe in B3 erfolgte
If [B3].Value = "" Then                         'Wenn B3 gelöscht wurde
Cells.Columns.Hidden = False                'Alle Spalten wieder einblenden
Else                                            'Ansonsten :
Cells.Columns.Hidden = True                 'Alle Spalten zunächst ausblenden
Columns("A:B").Hidden = False               'Spalten A:B wieder einblenden
With Rows(4)                                'Suche Wert in kompletter Zeile 4
Set rngZelle = .Find([B3].Value, lookat:=xlWhole) 'Suche nach Wert der Zelle B3
If Not rngZelle Is Nothing Then strAdr = rngZelle.Address
While Not rngZelle Is Nothing
rngZelle.EntireColumn.Hidden = False 'Spalte mit gefundenem Wert einblenden
Set rngZelle = .FindNext(after:=rngZelle)   'Weitersuchen
If rngZelle.Address = strAdr Then Set rngZelle = Nothing
Wend
End With
End If
End If
Set rngZelle = Nothing
End Sub


Gruß, NoNet
PS: Zum Auffinden von "Italien" und "Finnland" (oder auch "Hanni" und "Sushi") kannst Du in B3 mit Platzhaltern arbeiten : i*

DANKE
Uwe

Vielen Dank für deine Hilfe!!!!!
Einen wunderschönen verregneten Dönerstag wünsch ich Euch
LG Uwe
AW: Spalten Filtern mit VBA
Uwe

Hallo Danke, funktioniert zunächst sehr gut!
Wenn ich den Wert in Zelle B3 allerdings wieder lösche, dann werden alle Spalten versteckt und ich muss sie manuel wieder einblenden. Kann man das noch verfeinern?
Ausserdem findet er bei dem Suchbegriff "i" sowohl "i" für Italien, als auch "fin" für Finnland. Kann man das verhindern?
LG Uwe
Anzeige
AW: Spalten Filtern mit VBA
28.05.2009 14:55:47
Uwe
Hallo Danke, funktioniert zunächst sehr gut!
Wenn ich den Wert in Zelle B3 allerdings wieder lösche, dann werden alle Spalten versteckt und ich muss sie manuel wieder einblenden. Kann man das noch verfeinern?
Ausserdem findet er bei dem Suchbegriff "i" sowohl "i" für Italien, als auch "fin" für Finnland. Kann man das verhindern?
LG Uwe
Spalten exakt Filtern mit VBA
28.05.2009 15:49:31
NoNet
Hallo Uwe,
hier das angepasste Makro :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngZelle As Range, strAdr As String
If Not Intersect(Target, [B3]) Is Nothing Then      'Wenn Eingabe in B3 erfolgte
If [B3].Value = "" Then                         'Wenn B3 gelöscht wurde
Cells.Columns.Hidden = False                'Alle Spalten wieder einblenden
Else                                            'Ansonsten :
Cells.Columns.Hidden = True                 'Alle Spalten zunächst ausblenden
Columns("A:B").Hidden = False               'Spalten A:B wieder einblenden
With Rows(4)                                'Suche Wert in kompletter Zeile 4
Set rngZelle = .Find([B3].Value, lookat:=xlWhole) 'Suche nach Wert der Zelle B3
If Not rngZelle Is Nothing Then strAdr = rngZelle.Address
While Not rngZelle Is Nothing
rngZelle.EntireColumn.Hidden = False 'Spalte mit gefundenem Wert einblenden
Set rngZelle = .FindNext(after:=rngZelle)   'Weitersuchen
If rngZelle.Address = strAdr Then Set rngZelle = Nothing
Wend
End With
End If
End If
Set rngZelle = Nothing
End Sub


Gruß, NoNet
PS: Zum Auffinden von "Italien" und "Finnland" (oder auch "Hanni" und "Sushi") kannst Du in B3 mit Platzhaltern arbeiten : i*

Anzeige
DANKE
28.05.2009 15:56:05
Uwe
Vielen Dank für deine Hilfe!!!!!
Einen wunderschönen verregneten Dönerstag wünsch ich Euch
LG Uwe
AW: Spalten Filtern mit VBA
28.05.2009 15:52:53
Uwe
Hallo Danke, funktioniert zunächst sehr gut!
Wenn ich den Wert in Zelle B3 allerdings wieder lösche, dann werden alle Spalten versteckt und ich muss sie manuel wieder einblenden. Kann man das noch verfeinern?
Ausserdem findet er bei dem Suchbegriff "i" sowohl "i" für Italien, als auch "fin" für Finnland. Kann man das verhindern?
LG Uwe

7 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige