Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: per Makro nach Spalten-Namen filtern

per Makro nach Spalten-Namen filtern
23.01.2017 10:25:49
Daniel
Hallo Team,
ich bin relativ neu im Thema VBA und habe eine Frage:
Man kann beispielsweise Spalte 4 so filter:
Public Sub Autofilter4()
Range("A4:E4").Autofilter Field:=4, Criteria1:=Range("G1")
End Sub

Problem ist, wenn eine Spalte eingefügt wird...dann passt sich das Makro nicht wie bei einer Formel an. Ich habe gelesen, dass man die Zelle, nach der man filtern möchte, bennen kann. Das habe ich jeweils getan. Wie sieht dann aber der VBA Code aus?
Vielen Dank für eure Unterstützung und Grüße
Daniel
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: per Makro nach Spalten-Namen filtern
23.01.2017 12:37:00
ChrisL
Hi Daniel
Eigentlich müsstest du nur G1 durch den Namen ersetzen. Aber wenn sich die Spalten verschieben, dann stimmt vermutlich der Filter-Bereich und Field=4 auch nicht mehr. Somit auch hierfür Namen vergeben.
Public Sub Autofilter4()
Range("NameFilterBereich").AutoFilter Field:=Range("NameFilterSpalte").Column, _
Criteria1:=Range("NameFilterKriterium")
End Sub
cu
Chris
Anzeige
AW: per Makro nach Spalten-Namen filtern
23.01.2017 12:55:11
Daniel
Danke Chris, werde ich gleich versuchen. Muss in's Meeting. Gebe Dir dann Bescheid, ob es funktioniert.
CU
Daniel

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Filterung nach Spaltennamen mit VBA in Excel


Schritt-für-Schritt-Anleitung

Um in Excel nach Spaltennamen zu filtern, kannst du ein VBA-Makro erstellen. Folge diesen Schritten:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Erstelle ein neues Modul: Klicke mit der rechten Maustaste auf "VBAProject (deineDatei.xlsx)" > Einfügen > Modul.

  3. Füge den folgenden Code ein:

    Public Sub AutofilterNachSpaltennamen()
        Range("NameFilterBereich").AutoFilter Field:=Range("NameFilterSpalte").Column, _
        Criteria1:=Range("NameFilterKriterium")
    End Sub
  4. Definiere die Namen:

    • Markiere den Bereich, den du filtern möchtest, und benenne ihn in der Namensbox (z.B. NameFilterBereich).
    • Benenne die Spalte, nach der du filtern möchtest, (z.B. NameFilterSpalte).
    • Benenne die Zelle, die das Kriterium enthält (z.B. NameFilterKriterium).
  5. Führe das Makro aus: Gehe zurück zu Excel, drücke ALT + F8, wähle AutofilterNachSpaltennamen und klicke auf "Ausführen".


Häufige Fehler und Lösungen

  • Fehler: "Bereich nicht gefunden"
    Lösung: Stelle sicher, dass alle benannten Bereiche korrekt definiert sind.

  • Fehler: Das Makro filtert nicht richtig
    Lösung: Überprüfe, ob die Namen für die Spalte und das Kriterium korrekt angegeben sind und die Spalte nicht verschoben wurde.


Alternative Methoden

Eine weitere Möglichkeit, in Excel nach Spalten zu filtern, besteht darin, die „AutoFilter“-Funktion direkt in der Benutzeroberfläche zu verwenden. Klicke auf die Spaltenüberschrift und wähle die gewünschten Filterkriterien aus.

Du kannst auch die Funktion Advanced Filter nutzen, um komplexere Filterbedingungen zu erstellen.


Praktische Beispiele

Hier ist ein Beispiel für die Verwendung des VBA-Codes:

  1. Angenommen, du hast eine Tabelle mit Verkäufen, und die Spalten sind wie folgt benannt:

    • Produkt
    • Verkäufer
    • Region
    • Umsatz
  2. Definiere die Namen:

    • NameFilterBereich für den Bereich A1:D100
    • NameFilterSpalte für die Spalte Region
    • NameFilterKriterium für die Zelle E1, die den Wert "Europa" enthält.
  3. Das Makro filtert nun die Tabelle nach der Region "Europa".


Tipps für Profis

  • Namen dynamisch verwalten: Wenn du regelmäßig Spalten hinzufügst oder entfernst, überlege, die Bereiche dynamisch mit der OFFSET- oder INDEX-Funktion zu definieren.
  • Fehlerbehandlung: Füge On Error Resume Next hinzu, um Fehler elegant abzufangen und zu behandeln.
  • Verwende Kommentare: Kommentiere deinen Code, um die Lesbarkeit zu erhöhen und die Wartung zu erleichtern.

FAQ: Häufige Fragen

1. Kann ich das Makro anpassen, um mehrere Kriterien zu filtern?
Ja, du kannst mehrere Kriterien mit Criteria1 und Criteria2 verwenden.

2. Welche Excel-Version benötige ich für die Verwendung von VBA?
VBA ist in den meisten Excel-Versionen ab Excel 2003 verfügbar. Stelle sicher, dass du die Entwicklertools aktiviert hast.

3. Was passiert, wenn ich den benannten Bereich ändere?
Wenn du den benannten Bereich änderst, musst du sicherstellen, dass die Makros, die darauf zugreifen, ebenfalls aktualisiert werden, um Fehler zu vermeiden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige