Clever-Excel-Forum

Normale Version: Arbeitsblatt sortieren
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo!
Ich habe diverse Arbeitsblätter
Nun möchte ich dass nur die Daten in dem Tabellenblatt Übersicht sortiert werden.

Hiermit geht es ja:

Code:
Sub Sortall()
'
' Sort Makro
' Makro am 25.04.2005 von Klaus Kort aufgezeichnet
'

'

   Rows("4:65536").Select
   Selection.Sort Key1:=Range("D4"), Order1:=xlDescending, Key2:=Range("C4") _
       , Order2:=xlAscending, Key3:=Range("E4"), Order3:=xlAscending, Header:= _
       xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
   Range("A4").Select

End Sub


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.

Wie kann ich dies ändern?
Hallöchen,

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.
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?
Hallöchen,

blende die nicht zu berücksichtigenden Zeilen zuvor aus, z.B. mit dem Autofilter.
(16.03.2016, 21: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
ok habe diesen Code gefunden bei:
http://www.supportnet.de/stat/2004/2/id166560.asp


Code:
Sub FilterInDreiBlättern()
    Sheets("Elektro").Select
    Selection.AutoFilter Field:=14, Criteria1:=Elektro
    Sheets("Mechanik").Select
    Selection.AutoFilter Field:=14, Criteria1:=Mechanik
    Sheets("ElektroMechanik").Select
    Selection.AutoFilter Field:=14, Criteria1:=Elektro/Mechanik

End Sub
Geht aber nichts wenn ich den Code in "Diese Arbeitsmappe" kopiere.


Wenn ich den dann mit meinem Button Neu sortieren verknüpfe ,kommt:


Code:
Laufzeitfehler 1004
Die Autofiltermethode des Range -Objektes konnte nicht ausgeführt werden

--> Selection.AutoFilter Field:=14, Criteria1:=Elektro

Ich möchte aber im Blatt Elektro im Feld 14 (N) nach Elektro filtern
Im Blatt Mechanik --Feld 14 nach Mechanik
usw.