Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
512to516
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
512to516
512to516
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Sortierung nach Datum mit VBA funktioniert nicht

Sortierung nach Datum mit VBA funktioniert nicht
04.11.2004 18:53:49
Guido
Einen schönen guten Abend,
ich hoffe mal wieder auf Eure Hilfe.
Also es werden Daten automatisch in eine Tabelle (Name: Daten) geschrieben. In Spalte A wird ein Datum übertragen. Die Datumsspalte ist TT.MM.JJJJ formatiert.
Mit dem unten stehenden Code möchte ich, dass, sobald eine neue Zeile in die Tabelle geschrieben wird, diese nach Spalte A (Datum) aufsteigend sortiert wird.
Dies klappt auch "fast".
Es wird zwar sortiert, jedoch erfolgt die Sortierung lediglich nach den Tagen, nicht nach Monat bzw. Jahr. Also nach der Sortierung habe ich folgende Reihenfolge
01.01.2004
01.02.2004
02.01.2004
03.01.2004
03.02.2004 usw.
Monats- und Jahresangaben werden ignoriert. Was ist falsch an dem Code?
Herzlichen Dank für Eure Hilfe und
Gruß Guido

Private Sub Worksheet_Change(ByVal Target As Range)
Range("A1").CurrentRegion.Sort _
Key1:=Range("A2"), _
Order1:=xlAscending, _
Header:=xlYes, _
OrderCustom:=1, _
MatchCase:=False, _
Orientation:=xlSortColumns, _
DataOption1:=xlSortNormal
End Sub

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Sortierung nach Datum mit VBA funktioniert nicht
04.11.2004 19:27:46
PeterW
Hallo Guido,
die Daten liegen nicht als Daten sondern als Text vor, also liegt der Fehler in der Übertragung! Wie werden die "Daten" denn übertragen?
Gruß
Peter
AW: Sortierung nach Datum mit VBA funktioniert nicht
04.11.2004 20:38:52
Guido
Hallo Peter,
die Daten werden mittels Code aus einer Textbox in eine andere Tabelle geschrieben. Es muss in diese Textbox im Format TT.MM.JJJJ eingegeben werden.Von dort werden die Daten gewissermaßen in eine Mastertabelle (Name Daten) übertragen.
In beiden Tabellen ist die Formatierung der Spalte (A) TT.MM.JJJJ.
Wenn das Datum als Text vorliegt, müsste ich dann nicht mit der Sortierung Erfolg haben, wenn ich DataOption1:=xlSortTextAsNumber verwende? Funktionierte aber auch nicht.
Gruß Guido
Die Daten werden folgendermaßen in die Tabelle Daten übertragen, weil ich einmal eine Gesamttabelle und monatlich getrennte Tabellen benötige.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim iRow As Integer, iRowL As Integer
If Target.Column <> 6 Then Exit Sub
If IsEmpty(Target) Then Exit Sub
iRow = Target.Row
With Worksheets("Daten")
If IsEmpty(.Range("A1")) Then
iRowL = 1
Else
iRowL = .Cells(Rows.Count, 1).End(xlUp).Row + 1
End If
Range(Cells(iRow, 1), Cells(iRow, 6)).Copy .Cells(iRowL, 1)
End With
Range("A1").CurrentRegion.Sort _
Key1:=Range("A2"), _
Order1:=xlAscending, _
Header:=xlYes, _
OrderCustom:=1, _
MatchCase:=False, _
Orientation:=xlTopToBottom
End Sub

Anzeige
AW: Sortierung nach Datum mit VBA funktioniert nicht
04.11.2004 20:45:39
PeterW
Hallo Guido,
der Fehler liegt beim Übertragen der Werte aus der Textbox. In Textboxen steht immer TEXT, deswegen heißen die so. :-)
Mach beim Übertragen aus den Texten ein Datum - CDate wäre wohl das Schlüsselwort. Leider lässt sich aus deinem Code nicht erahnen, wie die Texte der Textboxen ursprünglich in eine Tabelle geschreiben werden.
Gruß
Peter
AW: Sortierung nach Datum mit VBA funktioniert nicht
04.11.2004 20:50:18
Guido
Hallo Peter,
da kann ich weiterhelfen...
Der Text aus den Textboxen wird folgedermaßen übertragen:
Private Sub cmdDatenübernahme_Click()
Dim NeueZeile As Long
With Worksheets(Format(txtBuchungsdatum.Value, "MMM"))
NeueZeile = .Range("B65536").End(xlUp).Row + 1
.Cells(NeueZeile, 1) = txtBuchungsdatum.Value
.Cells(NeueZeile, 2) = txtEmpfänger.Value
.Cells(NeueZeile, 3) = txtVerwendungszweck.Value
.Cells(NeueZeile, 4) = txtEinnahmen.Value
.Cells(NeueZeile, 5) = txtAusgaben.Value
.Cells(NeueZeile, 6) = cboKategorie.Value
Also müsste ich in der Zeile, in der ich den Inhalt aus txtBuchungsdatum an die Tabelle übergebe, den "Text" mittel CDate in ein Datum wandeln?
Gruß Guido
Anzeige
AW: Sortierung nach Datum mit VBA funktioniert nicht
04.11.2004 20:54:06
PeterW
Hallo Guido,
so würde ich das auch sehen:
.Cells(NeueZeile, 1) = CDate(txtBuchungsdatum.Value)
Gruß
Peter
AW: Sortierung nach Datum mit VBA funktioniert nicht
04.11.2004 20:56:39
Guido
Hallo Peter,
da such ich wie ein Blöder... und das Gute liegt so nah. Ich danke Dir recht herzlich und wünsche einen schönen Abend.
Gruß Guido
AW: Sortierung nach Datum - Ergänzung!!
04.11.2004 20:58:33
PeterW
Hallo Guido,
und bevor du jetzt alle schon in der Tabelle stehenden Daten neu eingibst markliere eine leere Zelle, kopiere sie (STRG+C), markiere die schon vorhandenen "Daten" (die keine sind), rechte Maustaste, Inhalte einfügen, Werte, Addition.
Gruß
Peter
AW: Sortierung nach Datum - Ergänzung!!
04.11.2004 21:10:55
Guido
Hallo Peter,
klasse Tip... habe allerdings momentan nur Testdaten. Normalerweise hättest Du Dir spätestens jetzt ein großes "Bier" verdient.
Besten Dank
Guido
Anzeige
AW: Sortierung nach Datum mit VBA funktioniert nicht
04.11.2004 19:31:34
andre
Hallo Guido,
sieht so aus, als ob Dein Datum keins ist. Beim Datum stehen die Werte standardmäßig rechts, ist das so? Formatiere mal Spalte B oder wo frei ist als Datum, schreibe in B2 =Wert(A2), nach unten ziehen, alles kopieren und Werte einfügen und dann mal die Spalte sortieren ...
AW: Sortierung nach Datum mit VBA funktioniert nicht
04.11.2004 20:45:42
Guido
Hallo Andre,
herzlichen Dank für die Antwort. Scheinbar wird der Zellwert nicht als Datum interpretiert, denn Du hast recht - das "Datum" ist links ausgerichtet. Wenn ich Deinen Vorschlag verfolge, kommen ich zu dem gleichen Ergebnis.

Danke und Gruß Guido

332 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige