habe mal wieder eine Frage. Ich möchte in meiner Datei (ist eine Auftragsübersicht) eine automatische Sortierung der Datensätze einbauen. Mit der normalen Sortierung muss man ja denke ich immer den entsprechenden Bereich manuell markieren und dann jedes mal die Sortierung neu ausführen. Hätte es gerne so, dass wenn ein neuer Auftrag mit einem neuen Termin eingegeben wird, nach Eingabe des Termin die Zeilen entsprechend sortiert werden. Da dies wahrscheinlich nur mit einem Makro geht habe ich es gegoogelt und dieses hier gefunden (ist schon für meine Zellbereiche angepasst):
Private Sub Workshett_Change(ByVal Target As Range)
If Not Appplication.Intersect(Target, Range("F12:F10000")) Is Nothing Then
Range("A12:H10000").Select
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, _
Header:=xlGuess, OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom
Range("A1").Select
End If
End Sub
Leider funktioniert es bei mir nicht. Es erfolgt überhaupt keine Sortierung. Habe ich evtl. was vergessen oder nicht beachtet?
Noch zur Info: Die Excel enthält bereits ein Makro, dass mir automatisch Mails schickt, sobald sich ein Termin eines Auftrags 3 oder weniger Tage in der Zukunft befindet oder bereits überschritten wurde und der Auftrag noch nicht als erledigt gekennzeichnet wurde. Natürlich sind auch in den Zeilen Formeln hinterlegt, die mir beispielsweise die Resttage anzeigen bzw. ermitteln.
Dieses Makro habe ich in einem neuen Modul eingebaut. Also habe ich nun zwei Module für die beiden Makros.
Für die Aufträge werden übliche Daten wie Nummer, Kunde usw. eingetragen und als letztes in Zeile F der Termin. Danach sollte sich alle Zeilen des Auftrags entsprechend einsortieren. Zeile G zeigt die Resttage, die anhand des Termins ermittelt werden und Zeile H ist nur für das Kennzeichnen des Auftrags als erledigt vorgesehen. Die Sortierung sollte aufsteigend erfolgen, also das die aktuelleren Termine bzw. die zeitnahen unten in der Liste stehen (weiß nicht wie ich es besser sagen soll :))
Die Zeilen können sich ruhig sortieren, sobald im Feld Termin ein Termin eingetragen wurde, also es muss nicht erst beim nächsten Start sein oder so was.
Vielleicht kann mir hier ja jemand damit helfen :)