Microsoft Excel

Herbers Excel/VBA-Archiv

Sortieren mit Autofilter dauert mega lange

Betrifft: Sortieren mit Autofilter dauert mega lange von: Guse
Geschrieben am: 30.10.2014 08:29:32

Hallo,

ich habe eine Tabelle in der drei Spalten sortiert werden sollen.
Es befinden sich ca 600 Zeilen in dem Tabellenblatt.

Allerdings dauert die Sortierung ca 30 sec.

Geht das auch schneller ???

Hier der Code

Private Sub Worksheet_Activate()
    Dim wksEingabe As Worksheet
    Set wksEingabe = ActiveWorkbook.Worksheets("Eingabe")
    With wksEingabe
        .Activate
        'Prüfen, ob der Autofilter schon aktiv ist
        If .AutoFilterMode = True Then
            If .FilterMode = True Then
'                .ShowAllData
            End If
        Else
            .Range("A2:AD2").Select
            Selection.AutoFilter
        End If
    End With
    
       With wksEingabe.AutoFilter.Sort
        .SortFields.Clear
        .SortFields.Add Key:=wksEingabe.Range("A2"), SortOn:=xlSortOnValues, _
                Order:=xlAscending, DataOption:=xlSortNormal
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    
    With wksEingabe.AutoFilter.Sort
        .SortFields.Clear
        .SortFields.Add Key:=wksEingabe.Range("D2"), SortOn:=xlSortOnValues, _
            Order:=xlAscending, DataOption:=xlSortNormal
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    
    With wksEingabe.AutoFilter.Sort
        .SortFields.Clear
        .SortFields.Add Key:=wksEingabe.Range("B2"), SortOn:=xlSortOnValues, _
                Order:=xlAscending, DataOption:=xlSortNormal
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    
End Sub

  

Betrifft: AW: Sortieren mit Autofilter dauert mega lange von: Daniel
Geschrieben am: 30.10.2014 16:24:45

Hi

600 Zeilen ist fürs sortieren eigentlich nicht viel, das sollte schneller gehen.

Wahrscheinlich hast du komplexe Formeln, welche sich auf diese Zellen beziehen oder Eventmakros, welche dursch das umsortieren ausgelöst werden.

Automatsische Neuberechnung und Aufruf der Eventmakros kannst du unterbinden, wenn du am Anfang folgendes Ausführst:

Application.EnableEvents = False
Application.Calculation = xlCalculationManual
bei Makroende schaltet man sie wieder ein mit:
Application.EnableEvents = True
Application.Calculation = xlCalculationAutomatic
solltest du das Einschalten vergessen oder das Makro mit einem Fehler abbrechen, so musst du bedenken dass dann bei Makroende die zuletzt gemachte Einstellung erhalten bleibt.
In diesem Fall kannst du die automatsiche Neuberechnung über den Menüpunkt bei FORMELN - BERECHNUNGSOPTIONEN wieder aktivieren, um die Events einzuschalten musst du den Befehl im Direktfenster eintippen.

Gruß Daniel


  

Betrifft: AW: Sortieren mit Autofilter dauert mega lange von: Guse
Geschrieben am: 30.10.2014 22:26:15

Moin Daniel,

also in den Zeilen befinden sich keine Formeln. Es ist ne reine Eingabe Seite.
Keine weteren Makros und trotzdem dauert es so lange !!!

Hast du oder jemand noch ne Idee oder Vorschlag ???

Wenn jemand nen anderen VBR Code schreibt versuche ich den gerne, meine Kenntnisse sind noch nicht so gut !!!

Danke an alle schon mal im Voraus !!!


  

Betrifft: AW: Sortieren mit Autofilter dauert mega lange von: Daniel
Geschrieben am: 30.10.2014 22:55:52

Hi
sind andere Dateien geöffnet, die Formeln haben die sich auf diese Zellen beziehen?
Ich sortiere normalerweise nicht mit dem Autofilter, sondern mit der normalen Sortierfunktion und da verwende ich meistens die alte Excel2003-Schreibweise weils kürzer ist.

um eine Tabelle nach einer Spalte so sortieren reicht dann dieser Code:

With AcitveSheet '---hier das zu sortierende Sheet einsetzen
    On Error Resume Next
    .ShowAllData '--- Wenn Autofilter alles einblenden
    On Error Goto 0
   .Usedrange.sort Key1:=.Cells(1, 2), order1:=xlascending, Header:=xlyes
End With
Geht im normalfalls sehr schnell.

Gruß Daniel


  

Betrifft: AW: Sortieren mit Autofilter dauert mega lange von: Guse
Geschrieben am: 31.10.2014 09:45:58

Moin Daniel,

also in den Zeilen befinden sich keine Formeln. Es ist ne reine Eingabe Seite.
Keine weteren Makros und trotzdem dauert es so lange !!!

Hast du oder jemand noch ne Idee oder Vorschlag ???

Wenn jemand nen anderen VBR Code schreibt versuche ich den gerne, meine Kenntnisse sind noch nicht so gut !!!

Danke an alle schon mal im Voraus !!!


 

Beiträge aus den Excel-Beispielen zum Thema "Sortieren mit Autofilter dauert mega lange"