Mein Problem ist dass es dann den Filter in den nächsten Arbeitsblättern auch verändert. so muß ich dann immer im Dropdown die jeweilige Abteilung bzw. Arbeiter neu abklicken damit nur dies in der Tabelle angezeigt wird.
die Sortierung wirkt in dem Blatt, welches beim Aufruf des Makros aktiv ist. Auf verschiedenen Blättern kann es nur wirken, wenn Du selbige aktivierst und das Makro auf dem jeweils aktivierten Blatt nochmals ausführst.
Eine gezielte Sortierung kannst Du z.B. dadurch erreichen, indem Du bei den Bereichsangaben das entsprechende Blatt zuweist, z.B.
Code:
With Sheets("Übersicht") .Rows("4:65536").Sort Key1:=.Range("D4"), Order1:=xlDescending, Key2:=.Range("C4") _ , Order2:=xlAscending, Key3:=.Range("E4"), Order3:=xlAscending, Header:= _ xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom End With
Beachte im Code die Punkte vor Rows und jeder Range-Angabe. Ein Select auf einem nicht aktiven Blatt ist nicht direkt möglich.
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
23.03.2016, 11:42 (Dieser Beitrag wurde zuletzt bearbeitet: 23.03.2016, 11:43 von Nixblick0815.)
Nur mal zur Erklärung:
Code:
With Sheets("Übersicht") .Rows("4:65536").Sort Key1:=.Range("D4"), Order1:=xlDescending, Key2:=.Range("C4") _ , Order2:=xlAscending, Key3:=.Range("E4"), Order3:=xlAscending, Header:= _ xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom End With
Meine Spalte E4 hat die Formatierung -Datum- Wie kann ich dann die Liste nach dem Datum sortieren aber mit der Bedingung dass die erledigten Aufträge (durchgestrichen, Bedingte Formatierung) nicht berücksichtigt werden?
15.05.2016, 12:17 (Dieser Beitrag wurde zuletzt bearbeitet: 15.05.2016, 12:18 von Nixblick0815.)
(16.03.2016, 22:57)schauan schrieb: Ein Select auf einem nicht aktiven Blatt ist nicht direkt möglich.
Also kann ich dies nicht machen, wenn ich den Button auf dem Blatt 1 habe:
Code:
With Sheets("Blatt1") .Rows("4:65536").Sort Key1:=.Range("D4"), order1:=xlDescending, Key2:=.Range("C4") _ , Order2:=xlAscending, Key3:=.Range("E4"), Order3:=xlAscending, Header:= _ xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom End With With Sheets("Blatt2") .Rows("4:65536").Sort Key1:=.Range("C4"), order1:=xlDescending, Key2:=.Range("D4") _ , Order2:=xlAscending, Key3:=.Range("E4"), Order3:=xlAscending, Header:= _ xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom End With End Sub
und wenn auf den Blatt 2 ein Autofilter ist ,dann zusätzlich nach dem Autofilter filtern:
Code:
Sub Filtersetzen() Dim ws As Worksheet
For Each ws In Worksheets If ws.AutoFilterMode Then If ws.FilterMode Then ws.ShowAllData Else ws.UsedRange.AutoFilter End If ws.UsedRange.AutoFilter Field:=12, Criteria1:=xxxx ws.Rows(1).Hidden = True Next End Sub