Tipps & Tricks 04.11.2006, 14:00 Uhr

Excel-Tabelle automatisch nach Datum sortieren

Problem: Ich habe in Excel drei Spalten mit den nachstehenden Daten belegt: A = Name Kunde; B = Arbeit für Kunde; C = Datum der Lieferung. Ich habe die drei Spalten markiert und Spalte C aufsteigend sortiert. Soweit alles in Ordnung. Nun habe ich einen weiteren Kunden und füge diesen in das Excelblatt mit dem entsprechenden Datum unten ein. Nach der Eingabe des Datums bzw. mit dem Setzen des Cursors in eine andere Zelle möchte ich, dass die Spalte C bzw. das ganze Blatt automatisch nach Datum aufsteigend sortiert wird. Kann das Excel?
Lösung: Excel kann das, aber nur mit Hilfe eines Makros. Jedoch würde ich Ihnen nicht ein Makro vorschlagen, dass beim Verlassen der Zelle sortiert, sondern ein normales Makro dem Sie eine Tastenkombination zuweisen. Oder ein Makro, welches vor jedem Speichern sortiert. Auf diese Weise, können Sie das Sortieren auch mit einer Tastenkombination starten, nämlich mit "ALT+S", die zum Speichern verwendet wird.
Das Makro lautet wie folgt. Fügen Sie dieses Makro in ein Modul ihrer Arbeitsmappe ein.
Rufen Sie dann "EXTRAs/MAKRO/MAKROS" auf, markieren Sie das Makro "sortieren" und klicken Sie dann auf "Optionen". Hier können Sie nun eine Tastenkombination eingeben. Wir haben "CTRL+m" gewählt.
Sie können nun ihr Tabelle ausfüllen solange Sie wollen.
Sobald Sie es für nötig halten, drücken Sie die Tastenkombination "CTRL + m" und ihre Einträge werden nach Datum Sortiert.
Sollten Sie die automatische "vor dem Speichern"-Version bevorzugen, dann tragen Sie das folgende Makro im VBA-Editor in "DieseArbeitsmappe" ein. Dieses Makro wird automatisch vor jedem Speichern ausgeführt, auch dann, wenn Sie die Tastenkombination für Speichern drücken "CTRL + S" drücken.
---------------------------------------------------
MAKROS ZUM KOPIEREN:
---------------------------------------------------
---------------------------------------------------
Makro in Modul:
---------------------------------------------------
Sub sortieren()
Sheets("Rapport").Activate
ActiveSheet.UsedRange.Select
Selection.Sort Key1:=Range("C2"), _
Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:= _
False, Orientation:=xlTopToBottom
End Sub
---------------------------------------------------
---------------------------------------------------
Makro in DieseArbeitsmappe:
---------------------------------------------------
Private Sub Workbook_BeforeSave _
(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Sheets("Rapport").Activate
ActiveSheet.UsedRange.Select
Selection.Sort Key1:=Range("C2"), _
Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:= _
False, Orientation:=xlTopToBottom
End Sub
---------------------------------------------------



Kommentare
Es sind keine Kommentare vorhanden.