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.

Arbeitsblatt sortieren
#1
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?


Angehängte Dateien
.xls   ToDoListe Arbeiten Versuche.xls (Größe: 1,04 MB / Downloads: 8)
Antworten Top
#2
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.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#3
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?


Angehängte Dateien
.bmp   ScreenHunter_134 Mar. 23 10.40.bmp (Größe: 224,94 KB / Downloads: 8)
Antworten Top
#4
Hallöchen,

blende die nicht zu berücksichtigenden Zeilen zuvor aus, z.B. mit dem Autofilter.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#5
(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
Antworten Top
#6
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.
Antworten Top


Gehe zu:


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