Um ehrlich zu sein, bin ich mit meinem Latein am Ende angelangt.. Ich schreibe jetzt mal nicht, wie lange ich an dem Problem schon sitze.
So, nur zur Ausgangslage. Ich will in einer Tabelle im Bereich A8:A58 ein Datum eintragen. Danach sollte übe VBA das Datum sortiert werden und die aktive Zelle (also dort wo sich das Datum nach dem sortieren befindet) eine Zelle nach rechts in die B Spalte verschieben.
So lange das eine normale Zahl ist, funktioniert das ganze auch. Allerdings wenn die Zellen als Datum formatiert sind, dann sortiert er zwar, jedoch verschiebt die aktive Zelle nicht nach rechts.
Eine Beispieldatei habe ich mal angehängt: https://www.herber.de/bbs/user/156513.xlsm
Bisher habe ich schon versucht, die Verschiebevorgang am Anfang des Codes zu setzen. Dann habe ich es mit einer Hilfspalte versucht, wo das Datum in Text umgewandelt wird bzw. nur als Zahl dargestellt wird. Das hat alles nichts gefruchtet.
Weiters wäre es noch schön, wenn dann bei einem gleichen Datum auch noch die Spalte E in diesem Bereich aufsteigend sortiert werden würde. Primär geht es mir jedoch um das Datum.
Hier noch mein Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngTreffcr As Range
Dim strKey As String
If Target.Column = 1 Then
strKey = Target.Value
ActiveCell.Offset(RowOffset:=0, ColumnOffset:=1).Activate
'versetzt die aktive Zelle eine Spalte nach rechts.
ActiveSheet.Range("A8:E58").Sort Key1:=Range("A8"), Order1:=xlAscending, Key2:=Range("E8"), Order2:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Set rngTreffcr = Range("A:A").Find(what:=strKey, lookat:=xlWhole)
If Not rngTreffcr Is Nothing Then
rngTreffcr.Select
ActiveCell.Offset(RowOffset:=0, ColumnOffset:=1).Activate
'versetzt die aktive Zelle eine Spalte nach rechts.
End If
End If
End Sub
Ich hoffe, dass mir hier jemand behilflich sein kann. Schon mal ein herzliches Dankeschön.
PS: Von VBA habe ich praktisch keine Ahnung.
Lg
Ferdi