Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Tabellenfilter mit VBA aktivieren/deaktivieren
#1
Hallo zusammen,
 
ich grübele schon seit Stunden an folgendem Problem und finde leider keine Lösung, die sich mit meinen Kenntnissen aufsetzen ließe:

Auf einem Tabellenblatt habe ich mehrere Tabellen, die alle in Spalte C anfangen, aber unterschiedlich viele Spalten aufweisen (siehe unten).
Bis auf eine einzige Tabelle, die ich hier ignorieren möchte, stehen bei jeder Tabelle in Spalte C diverse Namen (z.B. Typ 01, Typ 02, Typ 03, Typ 04) nach denen ich alle Tabellen filtern möchte.

Mein Ziel ist verschiedene Schaltflächen zu erzeugen, mit denen ich per Knopfdruck nach Typ 01, Typ 02 etc. alle relevanten Tabellen filtern kann.
Zudem hätte ich gerne eine Schaltfläche, die alle Filter in dem Tabellenblatt wieder zurücksetzt.

Ich habe es geschafft, eine Schaltfläche zu erstellen, die jedoch nur die erste Tabelle filtert. Meine VBA Kenntnisse reichen leider nicht aus, um alle restlichen Tabellen in dem Blatt „anzusprechen“.

Die einzelnen (relevanten) Tabellenüberschriften haben folgende Koordinaten:
-          C22:AY22
-          C74:Q74
-          C129:R129
-          C161:Q161
-          C194:V194
-          C226:O226
-          C261:S261
-          C291:M291
-          C323:K323

Ich hoffe, ich konnte mich einigermaßen klar ausdrücken und meine Problematik schildern.

Vielen herzlichen Dank vorab an all die, die sich Gedanken dazu machen.

Freundliche Grüße
Thomas
Antworten Top
#2
Hi Thomas,

so ganz klar wird mir nicht, was du wo eingetragen hast, wo welche Überschriften sind und was du als Ergebnis haben willst. Hierzu solltest du uns eine Beispieltabelle (anonymisiert!!), die aber dem Original gleichen soll, hochladen. Bei Klick auf das farbige Wort findest du eine Anleitung dazu.

Ich habe zwar einen Verdacht, wie deine Tabelle aussehen mag. Sollte sich dieser bestätigen, ist deine Tabelle - seeehhr vorsichtig ausgedrückt - suboptimal.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Antworten Top
#3
Danke für die schnelle Rückmeldung!

Im Anhang findest Du 3 Tabellen in einem Tabellenblatt, die jetzt alle via Schaltflächen nach Typ 01, Typ 02, Typ 03 und Typ 04 gefiltert werden sollen. Zudem soll es einen Button geben, der den eingestellten Filter wieder rückgängig macht (d.h. auf die Ausgangslage zurückstellt).

Falls noch weitere Informationen benötigt werden, versuche ich diese alsbald zur Verfügung zu stellen!

Vielen Dank!


Angehängte Dateien
.xlsm   Filter_Beispiel.xlsm (Größe: 10,93 KB / Downloads: 8)
Antworten Top
#4
Hi,

warum fügst du deine Einzeltabellen nicht zu einer gesamten zusammen? Ich schrieb doch bereits, dass nach meinem Dafürhalten deine Tabelle suboptimal ist. Könnte so ein Schuh daraus werden

Tabelle1

BCDEFGHIJ
7
8TypDatumKundeProduzierte MengeQualitätVerkauft [Ja/Nein]Zufrieden [Ja/Nein]
9Typ 0120.10.201310AJaJa
10Typ 0203.03.20152BJaJa
11Typ 0304.02.201433ANein
12Typ 0403.01.20154CJaNein
13Typ 0107.05.2015Meier
14Typ 0203.02.2014Müller
15Typ 0305.03.2013Schmidt
16Typ 0401.01.2014Bauer
17

Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8

Nun kannst du doch nach Lust und Laune filtern.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Antworten Top
#5
Leider sind die Tabellen vorgegeben...

Nur die Handhabung soll nun erleichtert werden :(
Antworten Top
#6
Vielleicht

Code:
Sub M_snb()
  for each ar in columns(3).specialcells(2).areas
    ar.currentregion.showalldata
  next
End Sub
Antworten Top
#7
[quote pid='25696' dateline='1444726878']
Hi,
Ich nehme an, dass dieser Befehl die Filter auf der Seite wieder aufheben soll.
Leider funktioniert der Code bei mir nicht :(
Code:
Sub M_snb()
 for each ar in columns(3).specialcells(2).areas
   ar.currentregion.showalldata
 next
End Sub

[/quote]
Antworten Top
#8
Hallo Thomas,

teste mal so:

Code:
Sub Filter_02()
 Dim oLO As ListObject
 For Each oLO In ActiveSheet.ListObjects
   oLO.Range.AutoFilter Field:=1, Criteria1:="Typ 02"
 Next oLO
End Sub

Sub Filter_Aus()
 Dim oLO As ListObject
 For Each oLO In ActiveSheet.ListObjects
   oLO.AutoFilter.ShowAllData
 Next oLO
End Sub

Gruß Uwe
Antworten Top
#9
Code:
Sub M_snb()
   For Each it In Sheet1.ListObjects
      it.ShowAutoFilter = False
    Next
End Sub
Antworten Top
#10
@Kuwer & snb

Vielen Dank! Eure codes funktionieren. Großartig!

Kennt ihr vielleicht beim Code, der den Filter wieder zurücksetzt, noch eine Ergänzung, dass gruppierte Zeilen nicht "ausgeklappt" werden bzw. "rückgruppiert" werden?

Manche Tabellen sind nämlich gruppiert, damit man viele leere Zeilen nicht sieht.
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste