Clever-Excel-Forum

Normale Version: Sortieren nach Datum
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

ich weiß diese Frage wurde schon oft gestellt, aber ich habe über die suchfunktion leider nicht die richtige antwort gefunden,
also ich habe ein Tabellenblatt mit 5 Spalten welche alle per userform gefüllt werden.
die spalte A enthällt das Datum  jetzt möchte ich per button nach diesem datum sortieren wobei das älteste datum an erster stelle liegen soll.

ich habe es mit diesem makro versucht

Sub SortierenDatumAuf()
 Dim letzte_zeile As Long
    letzte_zeile = Cells(Rows.Count, 1).End(xlUp).Row
     Range("A2:E" & letzte_zeile).Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, _
     OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom    
End Sub

leider sortiert excel dabei das datum nur bis zum ersten punkt also nur nach den tagen.
hat jemand nen tip für mich wie ich das realisieren kann?

gruß Heiko
Moin Heiko,

dann gehe ich davon aus, dass in Spalte_A kein Datum sondern ein Text steht, der wie ein Datum aussieht.
Formatiere ein "Datum" einfach einmal als "Standard", es muss dann eine Zahl herauskommen und darf kein Datum bleiben.

... und hättest du eine *.xls*-Datei hoch geladen, hättest du auch schon die Lösung Blush
die spalte ist im Datumsformat formatiert aber bei standard bleibt dennoch das datum und wird nicht in den datwert umgewandelt

kann es sein das sich durch die eingabe per userform der fehler einschleicht?

und es als text übergeben wird?
Der Fehler liegt im Makro. CDate() ist die Lösung.

ich bin so kurz angebunden, weil ... (-> Kleinschreibung)
(07.09.2015, 12:03)GMG-CC schrieb: [ -> ]Der Fehler liegt im Makro. CDate() ist die Lösung.

ich bin so kurz angebunden, weil ... (-> Kleinschreibung)


Sorry ich gelobe Besserung.

Aber wie kann ich CDate() in diesem Fall anwenden? Ich bin leider noch ein Frischling im Bereich VBA Programmierung.

Gruß Heiko
Ich habe es selbst durch probieren heraus bekommen.
Habe es so eingesetzt

             Tabelle1.Cells(lZeile, 1).Value = CDate(CStr(TextBox1.Text))

ich hoffe das es so korrekt ist, in jedem Fall funktioniert es so.

@GMG-CC

Vielen Dank für Deine Hilfe, ich persönlich suche schon seit Gestern nach der Lösung leider ohne Erfolg.

Gruß Heiko
Hallo!
Ganz kurz:
CDate(CStr(TextBox1.Text)) ist doppelt gemoppelt.
In der TextBox steht TEXT, den Du natürlich nicht per CStr() in einen Text umwandeln musst.
CDate(TextBox1.Text) reicht völlig.

Gruß Ralf
Super Danke hab es geändert bin halt noch neu in der Materie aber ich lerne.

Gruß Heiko
Moin,

Ralf hat mir ja schon die Arbeit abgenommen. Ein Hinweis noch: Die Formatierung spielt in dem Fall keine Rolle, es bleibt Text. Normalerweise siehst du es auch daran, dass ein echtes Datum (=Zahl) rechtsbündig ist, Text aber linksbündig. Vorhandene "Falschdaten" kannst du korrigieren, indem du die Spalte markierst und "Text in Spalten" durchführst. Da wird dann normalerweise ein Datum draus.