Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1552to1556
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA: richtig sortieren ohne Makro-Recorder

VBA: richtig sortieren ohne Makro-Recorder
17.04.2017 15:48:02
Max
Hallo,
ich bin neu bei VBA und möchte gerne folgendes als Teil eines Makros ausführen:
1) Auf Blatt "Users" die Zeilen 2 bis 100 aufsteigend nach Spalte C sortieren (Spalte A enthält hier keine Werte).
2) Auf Blatt "Holidays" die Spalten E bis Z aufsteigend nach Zeile 1 sortieren
Der Makro-Recorder liefert dazu folgenden Code (von mir etwas angepasst), der aus meiner Sicht einige unnötige Informationen enthält und den Code dadurch ziemlich aufbläht und mir ist nicht klar, wofür hier die .Clear-Zeilen benötigt werden.
Kann mir jemand sagen, wie ich beides in jeweils einer Zeile und so kurz wie möglich schreiben kann ?
Mein Code:
    ActiveWorkbook.Worksheets("Users").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Users").Sort.SortFields.Add Key:=Range("C2:C100"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Users").Sort
.SetRange Range("B2:D100")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
ActiveWorkbook.Worksheets("Holidays").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Holidays").Sort.SortFields.Add Key:=Range("E1:Z1"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Holidays").Sort
.SetRange Range("E1:Z100")
.Header = xlGuess
.MatchCase = False
.Orientation = xlLeftToRight
.SortMethod = xlPinYin
.Apply
End With
Vielen Dank im Voraus für Eure Hilfe,
Max

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: richtig sortieren ohne Makro-Recorder
17.04.2017 16:09:42
Sepp
Hallo Max,
das geht z. B. so.
Sub sortieren()
Dim rng As Range

With Worksheets("Users")
  .Range("B2:D100").Sort Key1:=.Range("C2"), Order1:=xlAscending, Header:=xlNo
End With


With Worksheets("Holidays")
  For Each rng In .Range("E1:Z100").Columns
    rng.Sort Key1:=rng.Cells(1, 1), Order1:=xlAscending, Header:=xlGuess
  Next
End With

End Sub

Gruß Sepp

Anzeige
AW: VBA: richtig sortieren ohne Makro-Recorder
17.04.2017 16:19:22
Max
Hallo Sepp,
vielen Dank dafür - auch das klappt bestens ! :)
VG und einen schönen Tag noch,
Max

225 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige