Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Sortierung nach zuletzt geänderter Zeile

Sortierung nach zuletzt geänderter Zeile
19.01.2006 07:29:06
Fux
Hallo,
meine Tabelle (A3 bis T) in Tabellenblatt2 beinhaltet pro Zeile eine komplette Leistungsposition. Nun wird der Status z.B. der Position 5 (=Zeile 7) mittels einer Userform geändert (z.B. von "offen" auf "erledigt"). Der Status befindet sich in Spalte N. Nachdem der Status durch die Userform geändert wurde soll die Tabelle so sortiert werden, dass die zuletzt geänderte Zeile, sprich durch Änderung des Status in Spalte N, oben steht.
Gibt es einen Makro-Code, der eine Sortierung nach der zuletzt geänderten Zeile vornimmt?
Vielen Dank für Eure Hilfe.
Fux
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Sortierung nach zuletzt geänderter Zeile
19.01.2006 11:27:27
marcl
Hallo Fux,
hast Du schon ein Makro mit der UserForm?
Man könnte jeweils in die nächste Spalte Datum und Uhrzeit eintrag, wann die Änderung erfolgt ist und dann danach sortieren. Das ist per Makro möglich.
Falls Du schon einen Teil hast, schreib ich das dazu.
Gruß
marcl
AW: Sortierung nach zuletzt geänderter Zeile
19.01.2006 11:44:50
Fux
hallo marcl,
habe folgenden text bei der userform:

Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
Application.EnableEvents = False
Dim x%, cell
Dim h As Integer
x = LI + 3
Sheets("DHL_NFA_Einzelübersicht").Unprotect "ts"
If TextBox1.Text = "" Then
Beep
MsgBox "Bitte wählens Sie eine Postition aus"
TextBox1.SetFocus
Exit Sub
End If
If ComboBox1.Text = "" Then
Beep
MsgBox "Sie haben vergessen einen neuen Status auszuwählen."
ComboBox1.SetFocus
Exit Sub
End If
Unload DHL_NFA_Statusänderung
On Error Resume Next
With Sheets("DHL_NFA_Einzelübersicht")
.Cells(x, 14).Value = ComboBox1.Value
End With
Unload DHL_NFA_Statusänderung
Range("A2").Select
Sheets("DHL_NFA_Einzelübersicht").Select
Sheets("DHL_NFA_Einzelübersicht").Protect "ts"
End Sub

datum und uhrzeit könnte man ggf. in spalte u eintragen. ich habe aber bei sortierungen mit datum z.b. folgende erfahrung gemacht:
10.01.06 10:50
09.02.06 14:45
bei der aufsteigenden sortierung wird dann aber nur die erste zahl, also der tag berücksichtigt, sodass 09.02.06 14:45 vor dem 10.01.06 10:50 steht, da 09 vor 10 kommt. vielleicht hast du ja dann doch eine idee, wie das komplette datum mit uhrzeit und sekunde berücksichtigt wird? vielleicht gibt es ja aber auch noch ne ganz andere lösung?
danke.
Fux
Anzeige
AW: Sortierung nach zuletzt geänderter Zeile
19.01.2006 13:17:36
marcl
Hallo ,
versuch mal das:

Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
Application.EnableEvents = False
Dim x%, cell
Dim h As Integer
x = LI + 3
Sheets("DHL_NFA_Einzelübersicht").Unprotect "ts"
If TextBox1.Text = "" Then
Beep
MsgBox "Bitte wählens Sie eine Postition aus"
TextBox1.SetFocus
Exit Sub
End If
If ComboBox1.Text = "" Then
Beep
MsgBox "Sie haben vergessen einen neuen Status auszuwählen."
ComboBox1.SetFocus
Exit Sub
End If
Unload DHL_NFA_Statusänderung
On Error Resume Next
With Sheets("DHL_NFA_Einzelübersicht")
.Cells(x, 14).Value = ComboBox1.Value
.Cells(x, 21).Value = Now
Columns("A3:U65000").Sort Key1:=Range("U3"), Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End With
Unload DHL_NFA_Statusänderung
Range("A2").Select
Sheets("DHL_NFA_Einzelübersicht").Select
Sheets("DHL_NFA_Einzelübersicht").Protect "ts"
End Sub

Gruß
marcl
Anzeige
AW: Sortierung nach zuletzt geänderter Zeile
19.01.2006 17:50:45
Fux
hallo mercl,
vielen dank, bekomme aber folgenden fehler angezeigt:
fehler beim kompilieren: variable nicht definiert.
der text "xlsortnormal" wird blau angezeigt.
hast du eine idee?
danke.
Fux
AW: Sortierung nach zuletzt geänderter Zeile
20.01.2006 07:13:36
marcl
moin Fux,
ist logisch. Ich habe einen Fehler gemacht. In welchem Abschnitt stehen Deine Daten? A3-U65000?
nicht:
Columns("A3:U65000").Sort Key1:=Range("U3"), Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
sondern:
Range("A3:U65000").Select
Selection.Sort Key1:=Range("U3"), Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Gruß
marcl
Anzeige
AW: Sortierung nach zuletzt geänderter Zeile
20.01.2006 13:01:13
Fux
hallo mercl,
funktioniert immer noch nicht. leider wird der fehler immer noch angezeigt:
fehler beim kompilieren: variable nicht definiert.
der text "xlSortNormal" wird blau angezeigt.
danke.
Fux
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Infobox / Tutorial

Sortierung nach zuletzt geänderter Zeile in Excel


Schritt-für-Schritt-Anleitung

Um die Tabelle in Excel automatisch zu sortieren, nachdem eine Änderung in der Userform vorgenommen wurde, kannst du den folgenden VBA-Code verwenden. Dieser Code aktualisiert den Status und speichert gleichzeitig das Datum und die Uhrzeit der Änderung in einer zusätzlichen Spalte, sodass die Tabelle nach der letzten Änderung sortiert werden kann.

  1. Öffne die Userform und füge folgenden Code in das CommandButton1_Click-Ereignis ein:

    Private Sub CommandButton1_Click()
        Application.ScreenUpdating = False
        Application.EnableEvents = False
        Dim x As Integer
        x = LI + 3
        Sheets("DHL_NFA_Einzelübersicht").Unprotect "ts"
    
        If TextBox1.Text = "" Then
            Beep
            MsgBox "Bitte wählens Sie eine Position aus"
            TextBox1.SetFocus
            Exit Sub
        End If
    
        If ComboBox1.Text = "" Then
            Beep
            MsgBox "Sie haben vergessen, einen neuen Status auszuwählen."
            ComboBox1.SetFocus
            Exit Sub
        End If
    
        With Sheets("DHL_NFA_Einzelübersicht")
            .Cells(x, 14).Value = ComboBox1.Value
            .Cells(x, 21).Value = Now ' Datum und Uhrzeit in Spalte U eintragen
            .Range("A3:U65000").Sort Key1:=.Range("U3"), Order1:=xlDescending, Header:=xlYes
        End With
    
        Sheets("DHL_NFA_Einzelübersicht").Protect "ts"
        Application.ScreenUpdating = True
        Application.EnableEvents = True
    End Sub
  2. Stelle sicher, dass die Daten in den Zellen A3 bis U65000 stehen.


Häufige Fehler und Lösungen

1. Fehler: "Variable nicht definiert" bei xlSortNormal

  • Dieser Fehler tritt auf, wenn Excel den Sortierbefehl nicht erkennen kann. Stelle sicher, dass deine Excel-Version die nötigen Konstanten unterstützt. In einigen Fällen kann es helfen, die Konstanten explizit zu definieren:

    Const xlSortNormal = 1

2. Fehler: Sortierung funktioniert nicht korrekt

  • Achte darauf, dass du das Sortierfeld und die Header-Einstellung korrekt konfiguriert hast. Überprüfe, ob die Daten in der richtigen Spalte stehen und dass die Header-Option auf xlYes gesetzt ist, wenn deine Tabelle Überschriften hat.

Alternative Methoden

Eine andere Möglichkeit, die Daten zu sortieren, besteht darin, eine Excel-Tabelle zu verwenden. Excel-Tabellen bieten integrierte Sortier- und Filteroptionen, die einfacher zu handhaben sind. Du kannst eine Tabelle erstellen, indem du den Datenbereich auswählst und dann auf "Als Tabelle formatieren" klickst. Nach jeder Änderung kannst du die Tabelle einfach sortieren, indem du auf die Kopfzeile klickst.


Praktische Beispiele

Hier ist ein Beispiel, wie du die Funktionalität in einer echten Anwendung nutzen könntest:

  • Du hast ein Projekt-Tracking-Dokument, in dem jede Zeile einen Task darstellt. Wenn der Status eines Tasks von "offen" auf "erledigt" geändert wird, wird das aktuelle Datum und die Uhrzeit in die Spalte U eingetragen, und die Tabelle wird automatisch nach der neuesten Änderung sortiert.

Tipps für Profis

  • Nutze die Worksheet_Change-Ereignisse, um die Tabelle automatisch zu sortieren, ohne dass der Benutzer den Button klicken muss.
  • Experimentiere mit der Verwendung von benutzerdefinierten Sortieroptionen, um die Flexibilität deiner Sortierung zu erhöhen.

FAQ: Häufige Fragen

1. Wie kann ich die Sortierung automatisieren, wenn ich keine Userform benutze? Du kannst das Worksheet_Change-Ereignis verwenden, um die Tabelle automatisch zu sortieren, nachdem eine Änderung in einer bestimmten Zelle vorgenommen wurde.

2. Welche Excel-Versionen unterstützen VBA? VBA wird in den meisten Versionen von Excel unterstützt, einschließlich Excel 2010, 2013, 2016, 2019 und Microsoft 365. Achte darauf, dass dein Excel auf dem neuesten Stand ist, um alle Funktionen nutzen zu können.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige