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

VBA: Spalte prüfen + Filter anwenden

Forumthread: VBA: Spalte prüfen + Filter anwenden

VBA: Spalte prüfen + Filter anwenden
11.04.2020 09:56:28
Adrian
Hallo zusammen.
Brauche da man Eure Hilfe bei einer kleinen Codezeile:
Habe wahrscheinlich noch nicht den richtigen Suchbegriff verwendet.
Bin aber überzeugt, dass dies in ähnlicher Ausführung auch schon mal besprochen wurde.
Ich habe in einem Tabellenblatt eine Intelligente Tabelle.
Insgesamt hat diese Tabelle 6 Spalten
Name der Spalten
Spalte 1: Pos
Spalte 2: Bezeichnung
Spalte 3: Hauptartikel
Spalte 4: Auswahl
Spalte 5: Teilartikel
Spalte 6: Filter
Nun möchte eine Echtzeitüberprüfung in der Spalte 4,
welche prüft ob etwas geändert wird/wurde.
Sobald irgendetwas verändert wurde und darin "kb" steht, soll in Spalte 6 einen Autofilter auslösen
und nach dem Buchstaben “x” und der Zahl "5" filtern.
Ich hab schon mal folgendes gefunden:
Private Sub Worksheet_Change(ByVal Target As Range) - dies wird ja glaube ich benötigt um eine Änderung festzustellen
If Not Intersect(Target, Range("E3:E100")) Then Exit Sub
ActiveSheet.ListObjects("Tabelle1").Range.AutoFilter Field:=6, Criteria1:= "x"
Aber ich bekomme noch einen Fehler (Typen unverträglich)?!
Kann mich da jemand noch unterstützen?
Danke vorab.
aloa5
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: Spalte prüfen + Filter anwenden
11.04.2020 10:00:56
Hajo_Zi
ich halte mich mal an den Text Spalte 4 soll gefiltert werden, warum dan 6?
Zu Deiner Datei kann ich nichts schreiben, was wohl daran liegt das ich nicht auf fremde Rechner schaue. Ich baue keine Datei nach.
Sollte die Datei verlinkt werden?
Der Name einer hochgeladenen Mappe wird im Beitrag automatisch angezeigt, sodass es bei Verwendung von aussagekräftigen Namen leichter fällt, sie später im Ablageordner wiederzufinden und sie gedanklich einem bestimmten Thema zuzuordnen. Namen wie Muster*, Test*, Mappe*, Beispiel*, Fehler*, Kalender*, UserForm* usw. sind so allgemein, dass eine Zuordnung zu einem Thema unmöglich gemacht wird.
Es sollte ein aussagekräftiger Name sein.
Das ist nur meine Meinung zu dem Thema.
Wenn du an Stelle einer Demomappe deine Originalmappe hochladen willst, diese aber sensible Daten enthält, kannst du diese Daten
http://www.ms-office-forum.de/forum/showthread.php?t=322895
änderrn.
Das ist nur meine Meinung zu dem Thema.

Anzeige
AW: VBA: Spalte prüfen + Filter anwenden
11.04.2020 10:07:03
Hajo_Zi
ich bin raus, was daran liegt das ich Dein Makro nicht finden konnte,
Viel Erfolg noch.
Gruß Hajo
Anzeige
AW: VBA: Spalte prüfen + Filter anwenden
11.04.2020 10:21:11
Adrian
Hallo Hajo,
Bitte entschuldige mein Versehen.
Habe, als ich die Musterdatei aufgebaut habe, leider vergessen den Code zu kopieren.
Nun der 2. Versuch :-)
AW: VBA: Spalte prüfen + Filter anwenden
11.04.2020 10:35:01
hary
Moin
Hab deine zweite Bsp.-Mappe genommen. Spalte "Auswahl" wird ueberwacht.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("Tabelle1[[Auswahl]]")) Is Nothing Then
ActiveSheet.ListObjects("Tabelle1").Range.AutoFilter Field:=6, Criteria1:="x"
End If
End Sub

gruss hary
Anzeige
AW: VBA: Spalte prüfen + Filter anwenden
11.04.2020 14:27:56
Adrian
Hallo Hary,
Vielen Dank für deine Hilfe.
Hat wunderbar funktioniert! :-)
Eine Bitte hätte ich noch,
Wie müsste ich die "Spaltenprüfung" anpassen, damit nur beim Wort "unter" die Filterung ausgeführt wird? Bei allen anderen Eingaben soll nichts unternommen werden.
Danke Dir vorab.
Gruss
aloa
Anzeige
AW: VBA: Spalte prüfen + Filter anwenden
11.04.2020 16:46:08
hary
Moin
Mal vom Handy.
Hinter ist Notting
and Target = "unter"
Gruss hary
AW: VBA: Spalte prüfen + Filter anwenden
13.04.2020 22:17:57
Adrian
Abend Hary,
Dank Dir für dein Input :-)
Hatte von meiner Seite her noch einen Denkfehler.
Wenn ich das Wort "unter" wieder lösche, muss ja der Filter trotzdem wieder angewendet werden.
Habe nun den Code leicht angepasst und es hat beim 3. Versuch funktioniert!
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("Tabelle1[[Auswahl]]")) Is Nothing Or Target = "unter" Then
ActiveSheet.ListObjects("Tabelle1").Range.AutoFilter Field:=6, Criteria1:="x"
End If
End Sub

Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Echtzeitüberprüfung und Filterung in Excel mit VBA


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und lade deine Arbeitsmappe, die eine intelligente Tabelle enthält.

  2. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  3. Füge den folgenden Code in das entsprechende Tabellenblatt ein:

    Private Sub Worksheet_Change(ByVal Target As Range)
       If Not Intersect(Target, Range("Tabelle1[[Auswahl]]")) Is Nothing Then
           If Target = "kb" Then
               ActiveSheet.ListObjects("Tabelle1").Range.AutoFilter Field:=6, Criteria1:="x"
           ElseIf Target = "unter" Then
               ActiveSheet.ListObjects("Tabelle1").Range.AutoFilter Field:=6, Criteria1:="x"
           End If
       End If
    End Sub
    • Dieser Code prüft, ob Änderungen in der "Auswahl"-Spalte vorgenommen wurden und filtert entsprechend.
  4. Speichere deine Änderungen und schließe den VBA-Editor.

  5. Teste die Funktion: Ändere Werte in der "Auswahl"-Spalte und prüfe, ob der Filter in der "Filter"-Spalte korrekt angewendet wird.


Häufige Fehler und Lösungen

  • Typen unverträglich: Dieser Fehler kann auftreten, wenn du versuchst, einen nicht unterstützten Datentyp zu filtern. Überprüfe, ob die Werte in der "Auswahl"-Spalte tatsächlich mit den Kriterien übereinstimmen.

  • Filter wird nicht angewendet: Stelle sicher, dass die Tabelle den korrekten Namen hat. Der Code verwendet Tabelle1. Ändere den Namen im VBA-Code, wenn deine Tabelle anders benannt ist.


Alternative Methoden

  1. Bedingte Formatierung verwenden: Anstatt VBA zu nutzen, kannst du auch die bedingte Formatierung verwenden, um visuelle Hinweise zu geben, wenn bestimmte Werte eingegeben werden.

  2. Pivot-Tabellen: Wenn du komplexere Datenanalysen durchführen möchtest, können Pivot-Tabellen eine gute Alternative sein, um Daten zu aggregieren und zu filtern.


Praktische Beispiele

  • Beispiel für die Anwendung: Wenn du in der "Auswahl"-Spalte den Text "kb" eingibst, wird in der "Filter"-Spalte sofort nach "x" gefiltert. Das ermöglicht eine schnelle Analyse der Daten.

  • Erweiterung des Codes: Du kannst den Code leicht anpassen, um zusätzliche Kriterien hinzuzufügen, indem du weitere ElseIf-Bedingungen einfügst.


Tipps für Profis

  • Verwende Option Explicit am Anfang des Moduls, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler zu vermeiden.

  • Nutze Debugging-Tools im VBA-Editor, um den Code Schritt für Schritt zu überprüfen. Dies kann hilfreich sein, um Fehler schnell zu identifizieren.


FAQ: Häufige Fragen

1. Wie kann ich den Filter zurücksetzen? Du kannst den Filter zurücksetzen, indem du den Filterbefehl mit den Kriterien Criteria1:="*" ausführst oder den Filter ganz entfernst.

2. Funktioniert dieser Code in Excel 365? Ja, der Code ist mit Excel 365 und anderen modernen Versionen von Excel kompatibel. Stelle sicher, dass die intelligenten Tabellen korrekt eingerichtet sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige