10.12.2019, 09:04
Hallo Tim,
der Code ersetzt Dein bisheriges Makro. Allerdings waren da noch einige Anpassungen nötig:
- Da Leerzellen nicht wie vorgesehen sortiert werden, werden sie temporär mit einem spezifischen Text gefüllt.
- Der Sortiercode ist nun vollständig und leichter lesbar.
- Da Excel immer abstürzt, wenn man versucht, die Datei zu speichern, wurde zusätzliche Zeile nötig.
Ob dieser Code nun schneller als Deiner ist, weiß ich nicht.
der Code ersetzt Dein bisheriges Makro. Allerdings waren da noch einige Anpassungen nötig:
- Da Leerzellen nicht wie vorgesehen sortiert werden, werden sie temporär mit einem spezifischen Text gefüllt.
- Der Sortiercode ist nun vollständig und leichter lesbar.
- Da Excel immer abstürzt, wenn man versucht, die Datei zu speichern, wurde zusätzliche Zeile nötig.
Ob dieser Code nun schneller als Deiner ist, weiß ich nicht.
Sub Mitarbeiter_sortieren_Neu() Dim Zeile_Position As Long Dim Spalte_Position As Long Application.AddCustomList Array("DAL", "EWF", "X", "x", "TOG", "@@@@@", "MV", "MV1", "MV2", "MV3", "MV4", "MV5", "AP", "AP1", "AP2", "AP3", "AP4", "AP5", "SD", "TD", "TP", "GT", "LG", "Ehu", "EHU", "k", "K", "AO") With ThisWorkbook.Sheets("Tabelle1") Zeile_Position = 5 'Zeile_Position = .Shapes(Application.Caller).TopLeftCell.Row 'bestimmt die Zeile des Objekts, dass das Makro auslöst Spalte_Position = 2 'Spalte_Position = .Shapes(Application.Caller).TopLeftCell.Column 'bestimmt die Spalte des Objekts, dass das Makro auslöst With .Cells(Zeile_Position + 2, Spalte_Position).Resize(19, 2) If Application.CountBlank(.Columns(2)) Then .Columns(2).SpecialCells(xlCellTypeBlanks).Value = "@@@@@" End If .Sort Key1:=.Cells(1, 2), _ Order1:=xlAscending, _ Header:=xlNo, _ OrderCustom:=Application.CustomListCount + 1 .Columns(2).Replace "@@@@@", "" End With 'verhindert Excelabsturz beim Versuch, dieses Datei zu speichern, 'wenn DeleteCustomList angewendet werden soll .Sort.SortFields.Clear End With Application.DeleteCustomList Application.CustomListCount End SubGruß UweVBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media
Code erstellt und getestet in Office 14 - mit VBAHTML 12.6.0