2 Datentabellen mit Datenschnitt filtern und Synchronisieren

  • Excel

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Cooooody.

    2 Datentabellen mit Datenschnitt filtern und Synchronisieren

    Hallo ihr Lieben,

    ich habe da mal eine Frage an euch bei der ich einfach seit stunden nicht mehr weiter komme.

    Folgender Sachverhalt:

    Anbei ein Bild meiner Tabelle. Ich habe zwei Tabellen auf 2 Worksheets, welche ich mittels Datenschnitt filtern möchte. Funktioniert soweit alles auch prima aber :P Ich möchte gerne das wenn ich im 1. Worksheet Filteroptionen auswähle diese automatisch auf Worksheet zwei übertragen werden. Mir ist da bis jetzt nur eine Umsetzung mittels VBA eingefallen, wobei ich damit leider gescheitert bin. Habe im Internet eine Lösung gefunden, wie man das mit normalen Filtern macht, was prima klappt aber leider halt nicht mit Datenschnitt.
    Eine PivotTabelle würde ich ungerne nutzten...


    Könnt ihr mit weiterhelfen oder ist wirklich die Privot Tabelle die einzigste Lösung.

    Viele Grüße und vielen Dank
    Bilder
    • excel1.PNG

      34,34 kB, 1.184×492, 527 mal angesehen
    Dateien
    • Datenschnitt.zip

      (16,68 kB, 229 mal heruntergeladen, zuletzt: )

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Cooooody“ ()

    Lass mich die Frage verstehen.
    - Du verwendest Office 2013
    - Du wendest den Datenschnitt direkt auf eine Tabelle an, nicht auf eine Pivottable
    - Manuell funktioniert es
    - Auf einem zweiten Blatt hast du dieselbe Tabellenstruktur und dieselben Datenschnitt-Objekte
    - Wenn du auf Blatt 1 ein Filterobjekt anklickst, soll auf Blatt 2 derselbe Filter aktiviert sein

    Eigentlich reicht es, die AutoFilter-Properties der beiden Blätter zu synchronisieren.
    Es stellt sich allerdings die Frage nach dem auslösenden Event.
    Du wirst wohl die Aktion am Worksheet_Calculate-Event aufhängen müssen.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --

    petaod schrieb:

    Lass mich die Frage verstehen.
    - Du verwendest Office 2013
    - Du wendest den Datenschnitt direkt auf eine Tabelle an, nicht auf eine Pivottable
    - Manuell funktioniert es
    - Auf einem zweiten Blatt hast du dieselbe Tabellenstruktur und dieselben Datenschnitt-Objekte
    - Wenn du auf Blatt 1 ein Filterobjekt anklickst, soll auf Blatt 2 derselbe Filter aktiviert sein

    Eigentlich reicht es, die AutoFilter-Properties der beiden Blätter zu synchronisieren.
    Es stellt sich allerdings die Frage nach dem auslösenden Event.
    Du wirst wohl die Aktion am Worksheet_Calculate-Event aufhängen müssen.


    Hallo,
    exakt sorry Office 2013, keine Pivottable. Habe mal eine Zip angehängt, dort ist meine Testtabelle.

    Zum Sachverhalt:
    Tabelle auf Seite 1 enthält die zu filternden Elemente : Elem1 Elem2 ELem3
    Tabelle auf Seite 2 enthält Elem1 Elem2 ELem3 Sonstiges Elemente 1 2 3 4

    Jetzt soll auf Seite 1 ein Filter gesetzt werden für Elem: 1 2 3 und am Besten automatisch oder wenn man ein Makro ausführt sollen die FIltereinstellungen dann von der 2 Tabelle übernommen werden.
    Und die Filterung mittels Datenschnitt, da schöne virtuelle Anzeige
    Ich wüsste nicht wie ich die Filter synchronisiere, da dies soweit ich weis nur per Pivotabelle geht.
    Das auslösende Event kann ja einfach sein per Makro Button...

    Grüße ;)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Cooooody“ ()

    petaod schrieb:

    Ich habe hier kein 2013 zur Verf&uuml;gung.<br />
    Wenn ich dran denke, schaue ich am Wochenende rein.


    Hey,

    also ich habe jetzt zwar eine Lösung gefunden für meine Problematik. Bei meinen Tests mit den Testdaten läuft alles soweit gut, allerdings verwende ich es am eigentlichen Datensatz ( Datenschnitte haben bspw. 40 -60 Items, dauert das ne gute Ewigkeit!

    Hat da jemand einen Vorschlag?

    Sub für den Aufruf der verschiedenen Datenschnitte; Call Worker("Hier werden die Slicer ausgewählt", "Und hier übernommen"):

    Visual Basic-Quellcode

    1. Sub SyncAllWS()
    2. Application.ScreenUpdating = False
    3. Application.EnableEvents = False
    4. Call Worker("Datenschnitt_Land", "Datenschnitt_Land1")
    5. Call Worker("Datenschnitt_Alter", "Datenschnitt_Alter1")
    6. Call Worker("Datenschnitt_Ort", "Datenschnitt_Ort1")
    7. clean_up:
    8. Application.EnableEvents = True
    9. Application.ScreenUpdating = True
    10. Exit Sub
    11. err_handle:
    12. MsgBox Err.Description
    13. Resume clean_up
    14. End Sub



    Und hier der Code der die Slicer synchronisiert:

    Visual Basic-Quellcode

    1. Public Sub Worker(ByVal source As String, ByVal Target As String)
    2. Dim sc1 As SlicerCache
    3. Dim sc2 As SlicerCache
    4. Dim si1 As SlicerItem
    5. Set sc1 = ThisWorkbook.SlicerCaches(source)
    6. Set sc2 = ThisWorkbook.SlicerCaches(Target)
    7. sc2.ClearAllFilters
    8. For Each si1 In sc1.SlicerItems
    9. If si1.Name = "(blank)" Or si1.Name = "(Leer)" Then
    10. Else
    11. On Error Resume Next
    12. If sc2.SlicerItems(si1.Value).Selected <> si1.Selected Then
    13. sc2.SlicerItems(si1.Value).Selected = si1.Selected
    14. End If
    15. End If
    16. Next
    17. End Sub