Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1488to1492
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
Autofilter auf mehrere Tabellenblätter
29.04.2016 09:09:11
Thomas
Hallo zusammen,
mein Problem ist ähnlich dieses Threads:
https://www.herber.de/forum/archiv/976to980/979392_Autofilter_ueber_mehrere_Tabellenblaetter.html
Im konkreten Fall habe ich mehrere Datenblätter - alle beginnen mit TB_ - die alle Autofilter im Bereich A13:D13 aufweisen. Für mich ist nun relevant, das der Filter, der in B13 gesetzt wird, für alle Blätter übernommen wird.
Anbei habe ich eine Beispieldatei hochgeladen. Es gibt mehr als die dort vorhandenen 2 Tabellenblätter.
Leider kann ich VBA Codes nur mit Hilfe der Makroaufzeichnung adaptieren - der konkrete Fall ist mir zu abstrakt - ich hoffe Ihr könnt mir helfen.
Vielen Dank.
https://www.herber.de/bbs/user/105335.xlsx  _
_
_
_
a>

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
...</pre> Format ausschalten (owT)
29.04.2016 10:48:50
EtoPHG

AW: ...</pre> Format ausschalten (owT)
29.04.2016 11:15:25
Thomas
Leider weiß ich nicht, wie ich in diesem Forum einen Beitrag editieren kann - gerne nehme ich das pre Format dann raus

AW: Autofilter auf mehrere Tabellenblätter
29.04.2016 11:17:18
Michael
Hallo Thomas!
Makro direkt in Deiner Bsp-Datei, teste mal: https://www.herber.de/bbs/user/105336.xlsm
Stell Dich in Blatt 1 oder 2, setze einen Filter in B und führe das Makro "MasterFilter" aus; ggf. auch mit zusätzlichen Blättern ausprobieren. Setze manuell einen Filter in Blatt 2, starte dann das Makro aus Blatt 1 und schau was passiert.
Gib Bescheid!
LG
Michael

Anzeige
AW: Autofilter auf mehrere Tabellenblätter
29.04.2016 14:25:37
Thomas
Hallo Michael,
vielen Dank für die Hilfe.
Das Makro funktioniert eigentlich, jedoch werden nicht mehr alle Baugruppen angezeigt wenn ich "Alle anzeigen" auswähle.
Hansueli hat ebenfalls eine Lösung gesendet - dort klappt es, aber ich würde das gerne auf ein Formularsteuerelement legen - was mit seinem Code nicht klappt...
Herzlichen Dank vorab!

Ergänzung für "Alles anzeigen"...
02.05.2016 09:53:00
Michael
Hallo Thomas!
Hier doch noch meine Ergänzung, damit das mit "Alle anzeigen" klappt: https://www.herber.de/bbs/user/105365.xlsm
Diesen Code kannst Du natürlich auch über eine Schaltfläche aufrufen, aber diesbzgl. siehe Hansuelis Nachfrage und Ergänzung.
LG
Michael

Anzeige
AW: Autofilter auf mehrere Tabellenblätter
29.04.2016 11:55:04
EtoPHG
Hallo Thomas,
Kopiere untenstehenden Code in DieseArbeitsmappe
Option Explicit
Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As  _
Boolean)
Const cWsPrefix As String = "TB_"
Const cRcTest As String = "$B$13"
Dim iX As Integer, iXF As Integer
Dim arrFilter()
If Sh.Type = xlWorksheet And Left(Sh.Name, Len(cWsPrefix)) = cWsPrefix Then
If Sh.AutoFilterMode = False Then Exit Sub
If Target.Address = cRcTest Then
Cancel = True
With Sh.AutoFilter
With .Filters
ReDim arrFilter(1 To .Count, 1 To 3)
For iXF = 1 To .Count
With .Item(iXF)
If .On Then
arrFilter(iXF, 1) = .Criteria1
If .Operator Then
arrFilter(iXF, 2) = .Operator
arrFilter(iXF, 3) = .Criteria2
End If
End If
End With
Next
End With
End With
For iX = 1 To Worksheets.Count
If Left(Worksheets(iX).Name, Len(cWsPrefix)) = cWsPrefix And _
Worksheets(iX).Name  Sh.Name Then
With Worksheets(iX)
On Error Resume Next
.ShowAllData
On Error GoTo 0
For iXF = 1 To UBound(arrFilter(), 1)
If Not IsEmpty(arrFilter(iXF, 1)) Then
If arrFilter(iXF, 2) Then
.Cells.AutoFilter Field:=iXF, Criteria1:=arrFilter(iXF, 1), _
Operator:=arrFilter(iXF, 2), Criteria2:=arrFilter(iXF, 3)
Else
.Cells.AutoFilter Field:=iXF, Criteria1:=arrFilter(iXF, 1)
End If
End If
Next iXF
End With
End If
Next iX
MsgBox "Filter Einstellung wurde auf alle TB_Blätter übertragen!", vbInformation '  _
bei Bedarf auskommentieren
End If
End If
End Sub
Wenn du nun in einem "TB_Blatt" den Filter in B13 änderst, machst du anschliessend einen Rechtsklick in die Zelle und damit wird die Einstellung auf alle anderen "TB_Blätter" übertragen.
Gruess Hansueli

Anzeige
AW: Autofilter auf mehrere Tabellenblätter
29.04.2016 14:22:09
Thomas
Hallo,
das funktioniert genauso wie ich will. Das i-Tüpfelchen wäre wenn ich diesen Code auf ein Formularsteuerelement legen könnte und nicht einen Rechtsklick in Zelle B13 machen muss. Leider bekomme ich das mit rüberkopieren nicht hin - bei der sh Definition bleibt der Debugger hängen.
Vielen Dank vorab!

Ich hätte mich auch über Feedback gefreut! :-( owT
29.04.2016 14:26:52
Michael

Ah, sorry, schon gesehen!...
29.04.2016 14:27:57
Michael
Thomas,
... da war ich zu voreilig.
Hansueli reicht Dir sicher noch was nach dazu!
LG
Michael

AW: Autofilter auf mehrere Tabellenblätter
29.04.2016 15:55:58
EtoPHG
Hallo Thomas,
Erkläre mir bitte den Vorteil eines Steuerelements (z.B. ein CommandButton?). Wo ist dieser platziert?
Da du mit der Maus sowieso schon den Autofilter Dropdown änderst, befindet sich der Cursor in der Nähe der Zelle und muss nicht nochmals gross verschoben werden, nämlich zum Steuerelement! Die Zellen B13 sind also implizite 'Steuerelemente'!
Meine Lösung hat den Vorteil:
a) Wenn immer ein neues TB_Blatt dazukommt. Kein Problem.
b) Kann auf jedem TB_Blatt ausgeführt werden und alle anderen Blätter werden angepasst!
c) Braucht nicht auf jedem Blatt einen 'Ausführungs'-Button
Gruess Hansueli
Anzeige

93 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige