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

Selection.Autofilter

Forumthread: Selection.Autofilter

Selection.Autofilter
30.09.2008 11:29:00
Mario
Liebe Excel/VBA/ Experten,
ich habe eine Übersicht und mehrere Datenblätter mit Konten. Mit einem Button kann ich dann die Ausgaben mit folgenden MAKRO den Konten zuordnen:
Sheets("Konto1").Select
ActiveSheet.Unprotect
Range("A10").Select
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:=""
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Jetzt will ich zwei neue Spalten mit zusätzlichen Kriterien einfügen.
Wenn ich dann auf aktualisieren gehe wird in die beiden neuen Spalten leider nichts hineingeschreiben und in die darauffolgende Spalte steht dann das neue Kriterium aus der Übersicht, wo vorher der Name des Bestellers war.
Auf der ersten Spalte im Arbeitsblatt des Kontos steht die Laufende Nummer und dort ist ein Filter gesetzt.
Wie muss ich das Makro ändern, damit auch die zwei neuen Spalten in das Konto-Datenblatt geschrieben wird?
Vielen Dank im voraus,
Mario
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Selection.Autofilter
04.10.2008 00:28:00
Thorsten_Z
Hallo Mario,
wenn ich dich richtig verstehe, dann so:
Sheets("Konto1").Select
ActiveSheet.Unprotect
Range("A10").Select
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:=""
Selection.AutoFilter Field:=2, Criteria1:="Kriterium1" 'Feld und kriterium anpassen
Selection.AutoFilter Field:=3, Criteria1:="Kriterium2"
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Gruß
Thorsten
Anzeige
;
Anzeige

Infobox / Tutorial

Nutzung von Selection.Autofilter in Excel VBA


Schritt-für-Schritt-Anleitung

  1. Datenblatt auswählen: Zuerst musst du das entsprechende Datenblatt auswählen, in dem du den Autofilter anwenden möchtest. Das kannst du mit dem folgenden Befehl tun:

    Sheets("Konto1").Select
  2. Blattschutz aufheben: Bevor du Änderungen vornimmst, solltest du den Blattschutz aufheben:

    ActiveSheet.Unprotect
  3. AutoFilter aktivieren: Um den Autofilter auf einen bestimmten Bereich anzuwenden, verwende:

    Range("A10").Select
    Selection.AutoFilter
  4. Filterkriterien hinzufügen: Du kannst mehrere Filterkriterien hinzufügen, indem du die Field-Nummer anpasst:

    Selection.AutoFilter Field:=1, Criteria1:=""
    Selection.AutoFilter Field:=2, Criteria1:="Kriterium1"
    Selection.AutoFilter Field:=3, Criteria1:="Kriterium2"
  5. Blattschutz wieder aktivieren: Nachdem die Änderungen vorgenommen sind, solltest du den Blattschutz wieder aktivieren:

    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True

Häufige Fehler und Lösungen

  • Problem: Die neuen Spalten bleiben leer, nachdem das Makro ausgeführt wurde.

    • Lösung: Stelle sicher, dass die Filterkriterien korrekt gesetzt sind und die Daten in den neuen Spalten vorhanden sind. Überprüfe den Field-Parameter und die Criteria1-Werte.
  • Problem: Beim Ausführen des Makros wird eine Fehlermeldung angezeigt.

    • Lösung: Überprüfe, ob das Arbeitsblatt "Konto1" existiert. Ein Tippfehler im Namen kann zu Problemen führen.

Alternative Methoden

  • Anstatt Selection.AutoFilter zu verwenden, kannst du auch ActiveSheet.ListObjects nutzen, um eine Tabelle zu filtern:

    ActiveSheet.ListObjects("Tabelle1").Range.AutoFilter Field:=1, Criteria1:="Kriterium1"
  • Du kannst auch AutoFilter in einem spezifischen Bereich anwenden:

    Range("A10:C100").AutoFilter Field:=2, Criteria1:="Kriterium1"

Praktische Beispiele

  • Beispiel für den Einsatz von selection.autofilter: Wenn du eine Liste von Verkäufen hast und nur die Verkäufe eines bestimmten Vertreters anzeigen möchtest, kannst du folgendes Skript verwenden:
    Sheets("Verkäufe").Select
    ActiveSheet.Unprotect
    Range("A1").AutoFilter Field:=3, Criteria1:="Max Mustermann"
    ActiveSheet.Protect

Tipps für Profis

  • Nutze AutoFilter in Verbindung mit Variablen, um dynamische Filterkriterien zu erstellen. Beispiel:

    Dim kriterium As String
    kriterium = "Kriterium1"
    Selection.AutoFilter Field:=2, Criteria1:=kriterium
  • Wenn du mit großen Datenmengen arbeitest, erwäge die Verwendung von activesheet.range.autofilter, um die Performance zu verbessern.


FAQ: Häufige Fragen

1. Wie kann ich mehrere Kriterien in einem Filter verwenden?
Du kannst die Criteria1- und Criteria2-Parameter verwenden, um z.B. zwischen zwei Werten zu filtern:

Selection.AutoFilter Field:=1, Criteria1:=">=100", Criteria2:="<200"

2. Funktioniert Selection.AutoFilter in allen Excel-Versionen?
Ja, Selection.AutoFilter ist in den meisten modernen Excel-Versionen verfügbar, jedoch könnte die spezifische Syntax variieren. Es ist ratsam, die VBA-Dokumentation für deine Excel-Version zu konsultieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige