Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Excel: Sortieren von Datum/Uhrzeit





Frage

Hallo zusammen, mein Problem ist Folgendes: in einer Excel-Tabelle habe ich eine Spalte, in der Datum und Uhrzeit folgendermassen angegeben sind: 01.06.2006 09:54:12 Nun möchte ich die ganze Tabelle nach Uhrzeit sortieren, ohne dass das Datum beachtet wird. Wie muss ich vorgehen? Unter Format kann man ja einstellen, dass nur die Uhrzeit angegeben wird, aber es sortiert dann trotzdem immer noch nach dem Datum. Besten Dank für die Hilfe!

Antwort 1 von Aliba

Hi Suki,

ohne Hilfsspalte ist das wohl nur per VBA möglich. Da kenn ich mich aber nicht aus.
Mit Hilfsspalte:

=REST(A1;1) und soweit benötigt nach unten kopieren, anschliessend nach dieser Spalte sortieren.

CU Aliba

Antwort 2 von nighty

hi all :)

wie gewünscht :))

gruss nighty

Option Explicit
Sub TeilSortierung()
Dim zaehler1 As Long
Dim zaehler2 As Long
For zaehler1 = 1 To Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row
For zaehler2 = 1 To Len(Cells(zaehler1, 1).Value)
If Mid(Cells(zaehler1, 1).Value, zaehler2, 1) = " " Then
Cells(zaehler1, 1).Value = Mid(Cells(zaehler1, 1), zaehler2 + 1, Len(Cells(zaehler1, 1).Value)) _
& " " & Mid(Cells(zaehler1, 1), 1, zaehler2 - 1)
zaehler2 = Len(Cells(zaehler1, 1).Value)
End If
Next zaehler2
Next zaehler1

Rem der zu sortierende bereich waere anzupassen ("A1:B65535")

Range("A1:B65535").Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, _
MatchCase:=False, Orientation:=xlTopToBottom
For zaehler1 = 1 To Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row
For zaehler2 = 1 To Len(Cells(zaehler1, 1).Value)
If Mid(Cells(zaehler1, 1).Value, zaehler2, 1) = " " Then
Cells(zaehler1, 1).Value = Mid(Cells(zaehler1, 1), zaehler2 + 1, Len(Cells(zaehler1, 1).Value)) & _
" " & Mid(Cells(zaehler1, 1), 1, zaehler2 - 1)
zaehler2 = Len(Cells(zaehler1, 1).Value)
End If
Next zaehler2
Next zaehler1
End Sub

Antwort 3 von suki

hallo,

danke für die Hilfe!
Als Excel-Anfängerin kann ich mit dieser
langen Formel nicht viel anfangen.
Was soll man damit machen, nighty?
Irgendwo reinkopieren???

gruss

Antwort 4 von nighty

hi suki :)

mein vorschlag waere der einer schalflaeche wenn es dir gefallen sollte :)

gruss nighty

obere menueleiste freie stelle suchen/rechtsclick/steuerelement-toolbox/entwurfsmodus ein /befehlsschaltflaeche anwaehlen/positionieren/rechtsclick/code anzeigen/code dort mittig einfuegen
nun haettest du noch die moeglichkeit mit rechtsclick auf die schaltflaeche eigenschaften/NAME anzuwaehlen und zu aendern,
bei der steuerelent-toolbox entwurfsmodus beenden anwaehlen ,fertig

Antwort 5 von nighty

hi suki :)

das waere der code fuer die schaltflaeche

gruss nighty

Dim zaehler1 As Long
Dim zaehler2 As Long
For zaehler1 = 1 To Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row
For zaehler2 = 1 To Len(Cells(zaehler1, 1).Value)
If Mid(Cells(zaehler1, 1).Value, zaehler2, 1) = " " Then
Cells(zaehler1, 1).Value = Mid(Cells(zaehler1, 1), zaehler2 + 1, Len(Cells(zaehler1, 1).Value)) _
& " " & Mid(Cells(zaehler1, 1), 1, zaehler2 - 1)
zaehler2 = Len(Cells(zaehler1, 1).Value)
End If
Next zaehler2
Next zaehler1

Rem der zu sortierende bereich waere anzupassen ("A1:B65535")

Range("A1:B65535").Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, _
MatchCase:=False, Orientation:=xlTopToBottom
For zaehler1 = 1 To Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row
For zaehler2 = 1 To Len(Cells(zaehler1, 1).Value)
If Mid(Cells(zaehler1, 1).Value, zaehler2, 1) = " " Then
Cells(zaehler1, 1).Value = Mid(Cells(zaehler1, 1), zaehler2 + 1, Len(Cells(zaehler1, 1).Value)) & _
" " & Mid(Cells(zaehler1, 1), 1, zaehler2 - 1)
zaehler2 = Len(Cells(zaehler1, 1).Value)
End If
Next zaehler2
Next zaehler1

Antwort 6 von nighty

hi all :)

hier noch ein wenig optimiert :)

gruss nighty

Dim zaehler1 As Long
Dim zaehler2 As Integer
For zaehler1 = 1 To Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row
For zaehler2 = 1 To Len(Cells(zaehler1, 1).Value)
If Mid(Cells(zaehler1, 1).Value, zaehler2, 1) = " " Then
Cells(zaehler1, 1).Value = Mid(Cells(zaehler1, 1), zaehler2 + 1, Len(Cells(zaehler1, 1).Value)) _
& " " & Mid(Cells(zaehler1, 1), 1, zaehler2 - 1)
zaehler2 = Len(Cells(zaehler1, 1).Value)
Exit For
End If
Next zaehler2
Next zaehler1
Range("A1:B" & Rows.Count).Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, _
MatchCase:=False, Orientation:=xlTopToBottom
For zaehler1 = 1 To Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row
For zaehler2 = 1 To Len(Cells(zaehler1, 1).Value)
If Mid(Cells(zaehler1, 1).Value, zaehler2, 1) = " " Then
Cells(zaehler1, 1).Value = Mid(Cells(zaehler1, 1), zaehler2 + 1, Len(Cells(zaehler1, 1).Value)) & _
" " & Mid(Cells(zaehler1, 1), 1, zaehler2 - 1)
zaehler2 = Len(Cells(zaehler1, 1).Value)
Exit For
End If
Next zaehler2
Next zaehler1

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: