Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1676to1680
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

Datum aufsteigend sortieren vba

Datum aufsteigend sortieren vba
17.02.2019 14:13:58
Christian
Moin Freunde,
ich verzweifel hiere gerade ein wenig an VBA und daran, dass ich eine Spalte mit Werte die ich aus anderen Tabellenblätteren eingefügt habe, aufsteigend sortieren möchte.
1. Lasse ich über die Spalte F die Funktion "Text in Spalten"
    wsZiel.Range("F2:F" & lngLZeileQuelle).TextToColumns Destination:=wsZiel.Range("F2"),  _
DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(1, 1), TrailingMinusNumbers:=True
2. Mit diesem Abschnitt lasse ich die Spalte in das Datumsformat "Datum Kurz" formatieren

lngLZeileZiel = wsZiel.Cells.Find("*", wsZiel.Range("A1"), xlFormulas, xlWhole, xlByRows,  _
xlPrevious).Row
For lngAktZeile = 2 To lngLZeileZiel
wsZiel.Range("F" & lngAktZeile).Value = DateValue(wsZiel.Range("F" & lngAktZeile).Value) _
wsZiel.Range("I" & lngAktZeile).Value = DateValue(wsZiel.Range("I" & lngAktZeile).Value) _
If Not IsError(wsZiel.Range("R" & lngAktZeile)) Then
wsZiel.Range("R" & lngAktZeile).Value = DateValue(wsZiel.Range("R" & lngAktZeile). _
Value)
End If
Next lngAktZeile
3. Und zum Schluss kommt die eigentliche Aufsteigend Sortierung.
    wsZiel.Activate
wsZiel.AutoFilter.Sort.SortFields.Clear
wsZiel.AutoFilter.Sort.SortFields.Add Key:= _
wsZiel.Range("F1:F" & lngLZeileZiel), SortOn:=xlSortOnValues, Order:=xlAscending,  _
DataOption:=xlSortNormal
With wsZiel.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Und als Resultat sehe ich leider nur, dass alle Befehle durchgeführt wurden sind, der Cursor auch auf der gewünschten Einstellung steht (siehe Screenshort), jedoch wird dieser Befehl nicht ausgeführt. Der Anwender muss manuell doch noch einmal auf die bereits ausgewählte Option klicken und erst dann, wird der Befehl "Aufsteigend" sortiert ausgewählt. Warum? Ich stehe mit meinen Latain am Ende und weiß nicht mehr weiter.
Userbild
Ich hoffe Ihr könnt meinen Problem folgend :)
Beste Grüße
Christian und vielen Dank für euren Support.

18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datum aufsteigend sortieren vba
17.02.2019 14:25:01
onur
DataOption:= xlSortTextAsNumbers
AW: Datum aufsteigend sortieren vba
17.02.2019 14:30:38
Christian
Schade :/ Keine Veränderung
Userbild
AW: Datum aufsteigend sortieren vba
17.02.2019 14:52:37
onur
Wieso AUTOFILTER?
wsziel.Sort.SortFields.Clear
wsziel.Sort.SortFields.Add Key:=wsziel.Range("F1"), SortOn:=xlSortOnValues, Order:=xlDescending, _
_
DataOption:=xlSortTextAsNumbers
With wsziel.Sort
.SetRange Range("F1:F" & lngLZeileZiel)
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With

AW: Datum aufsteigend sortieren vba
17.02.2019 15:01:48
Christian
Der Makro reader schmeisst mir diesen Autofilter rein. Wobei die Tabelle bereits gefiltert ist.
Anzeige
AW: Datum aufsteigend sortieren vba
17.02.2019 15:06:49
onur
Du hast beim aufzeichnen mit dem Macro RECORDER statt "nach Datum sortieren" "benutzerdefiniertes Sortieren" genommen.
AW: Datum aufsteigend sortieren vba
17.02.2019 15:09:10
Christian
Also wenn ich denn recorder anschmeiße, die und oben in der Spalte auf Datum aufsteigend sortiere klicke, bekomme ich diese Codestruktur als Ergebniss:
Sub Makro5()
' Makro5 Makro
ActiveWorkbook.Worksheets("Open PO").AutoFilter.Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Open PO").AutoFilter.Sort.SortFields.Add2 Key:= _
Range("F1:F9876"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _
:=xlSortNormal
With ActiveWorkbook.Worksheets("Open PO").AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub

Anzeige
AW: Datum aufsteigend sortieren vba
17.02.2019 15:10:40
onur
Schmeiss mal den Autofilter raus und probiere noch masl.
AW: Datum aufsteigend sortieren vba
17.02.2019 15:13:50
onur
Du verwechselst Autofilter und Sortieren, was drunter liegt.
Das PopUp-Menü auf deiner Bildschirmkopie ist vom FILTERN und nicht vom SORTIEREN.
AW: Datum aufsteigend sortieren vba
17.02.2019 15:17:18
Christian
Auf "nach Datum sortieren" klicke ich? Indem ich oben denn Filter aktivere und dann auf Sortieren klicke.
Außerdem bringt das entfernen des Autofilter leider nichts :(
AW: Datum aufsteigend sortieren vba
17.02.2019 15:22:12
onur
Bereich markieren, Macrorecorder einschalten,auf "Sortieren und Filtern/benutzerdef. Sortieren" klicken
Userbild
Anzeige
ahhhh ;)
17.02.2019 15:27:39
Christian

Sub Makro6()
' Makro6 Makro
Cells.Select
Range("D1").Activate
ActiveWorkbook.Worksheets("Open PO").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Open PO").Sort.SortFields.Add2 Key:=Range( _
"F2:F9877"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("Open PO").Sort
.SetRange Range("A1:T9877")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub

AW: Datum aufsteigend sortieren vba
17.02.2019 15:16:27
onur
Probiere einfach meinen Code aus.
AW: Datum aufsteigend sortieren vba
17.02.2019 15:17:01
onur
Probiere einfach meinen Code aus, NACHDEM du den Bereich erweitert hast.
Anzeige
AW: Datum aufsteigend sortieren vba
17.02.2019 14:59:07
onur
Du bist dir darüber im klaren, dass dein Code alle Deine Daten durcheinanderschmeisst, solange du als Range nur Spalte F nimmst?
AW: Datum aufsteigend sortieren vba
17.02.2019 15:01:18
Christian
Hmm also müsste ich als Range denn gesamten Bereich annehmen? Ich möchte ja denn gesamten Bereich in Abhängigkeit der Spalte F aufsteigend sortieren
AW: Datum aufsteigend sortieren vba
17.02.2019 15:04:39
onur
Du musst den gesamten Bereich nehmen, sonst bleiben alle anderen Werte gleich, nur F ändert sich.
Key:=wsziel.Range("F1") besagt ja schon, dass nach F sortiert werden muss.
Bin ab 18 Uhr wieder zuhause.
17.02.2019 15:22:40
Christian
Ich muss jetzt leider los aber dieses Problem möchte ich heute auf jeden Fall nochmal lösen. Das kann doch nicht so schwer sein, mit VBA eine Spalte mit eingefügten Werten aufsteigend zu sortieren.
Anzeige
AW: Bin ab 18 Uhr wieder zuhause.
17.02.2019 15:24:52
onur
Wenn man weiss, was "Sortieren" und was "Filtern" ist, ist das auch nicht schwer.

236 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige