Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zeilen im Tabellenblatt automatisch nach Datum sortieren

Forumthread: Zeilen im Tabellenblatt automatisch nach Datum sortieren

Zeilen im Tabellenblatt automatisch nach Datum sortieren
25.10.2024 20:42:52
Ringberger
Hallo,

bei der Führung unseres Kassenbuches kommt es vor, dass Belege verspätet eintreffen. Das Datum ist dann älter als die letzte Buchung. Wir haben dann mit viel händischem Aufwand die richtige zeitliche Reihenfolge hergestellt.
Wir möchten das gerne automatisieren. Wenn die Eingabe vollständig ist, soll dann die Zeile automatisch richtig sortiert werden.
Es sind im Eingabebereich (Spalten A bis H) keine verbundenen Zellen vorhanden. Blattschutz liegt auch nicht auf dem Tabellenblatt.
Versucht hatten wir dies mit diesem Makro


Private Sub Workbook_BeforeSave _
(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Sheets("01").Activate
ActiveSheet.UsedRange.Select
Selection.Sort Key1:=Range("B4"), _
Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:= _
False, Orientation:=xlTopToBottom
End Sub

Wir bekommen dann den Laufzeitfehler '1004' "Für diese Aktion müssen alle verbundenen Zellen dieselbe Größe haben".
Hier wissen wir nicht mehr weiter. Kann uns jemand helfen?
Danke
Andreas
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilen im Tabellenblatt automatisch nach Datum sortieren
25.10.2024 21:14:36
Ulf
Hi Andreas,
die Fehlermeldung sagt doch, wo der Hund begraben ist. Es genügt nicht nur den 'Eingabebereich' unverbunden oder gleichzellig verbunden zu haben.
Wie oft sollte man zwischen Datenhatung und Präsentation unterscheiden: 1.Blatt für Eingabe ohne jegliche Formatierung und ein weiteres 2.Blatt mit Verweisen auf das Eingabeblatt für Druck könnte das Problem lösen. Alternativ gilt es alle verbundenen Zellen zu inspizieren und gleich zu verbinden, d.h. immer 2 oder die Maximalanzahl verbinden. Eventuell kann man auch Pseudospalten einfügen, die komplett weiß gefärbt sind. Kann man alles ohne hochgeladene Beispieldatei mit unechten Daten schwer beurteilen. Generell würde ich diese Sachen mit Access lösen.
hth
Ulf
Anzeige
AW: Zeilen im Tabellenblatt automatisch nach Datum sortieren
26.10.2024 14:58:00
Piet
Hallo

kannst du eine Beispieldatei mit Fantasiedaten hochladen, damit wir den Tabellenaufbau erkennen können?
Man kann auch eine neue Zeile beim Datum einfügen, und die Eingabe Daten dahinein kopieren.
Dazu müssten wir aber die Datei sehen.

mfg Piet
AW: Zeilen im Tabellenblatt automatisch nach Datum sortiere
26.10.2024 16:00:39
Ringberger
Hallo,

würde ich gerne, habe ich auch probiert. Die komplette Arbeitsmappe hat knapp 3 MB und wenn ich sie auf das nötigste reduziere, bin ich immer noch bei 826 KB. Auf diesem Weg wird es nichts.

VG

Andreas
Anzeige
AW: Zeilen im Tabellenblatt automatisch nach Datum sortiere
28.10.2024 01:22:14
Ringberger
Hallo Piet,

ich habe jetzt eine Lösung gefunden, die funktioniert. Entspricht zwar nicht meinen Vorstellungen, geht nicht vollautomatisch, aber so geht es einigermaßen komfortabel.
Nach dem Verbuchen des Beleges starte ich ein Makro durch Klick auf eine Schalfläche der ich das Makro zugeordnet habe.
Das ist das Makro:
Sub Datum_01_sortieren()

'
' Datum_sortieren Makro
' Tabelle nach Datum sortieren
'
' Tastenkombination: Strg+d
'
Range("A4:H93").Select
ActiveWorkbook.Worksheets("01").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("01").Sort.SortFields.Add2 Key:=Range("B4:B93"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("01").Sort
.SetRange Range("A4:H93")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub


Vielleicht lässt sich damit das Makro schreiben, dass nach Eingabe der Daten das Makro automatisch ausgeführt wird.

VG

Andreas
Anzeige
AW: Zeilen im Tabellenblatt automatisch nach Datum sortiere
28.10.2024 06:41:35
RPP63
Moin!
Ich würde niemals einen Automatismus wählen, wäre mir viel zu unsicher!
Was spricht denn dagegen, nach der Eingabe einen Rechtsklick auf die Datumszelle zu machen und zu sortieren?
Für Tastatur-Junkies gibt es auch die Taste links neben der rechten Strg-Taste.

Der Fehler im Makro der Threaderöffnung war, dass die Range.Sort-Methode mit .UsedRange einen zu großen Bereich genommen hat.
Dass Du jetzt auf die Worksheet.Sort-Eigenschaft switchst (heißt, jetzt kam wohl der Rekorder zu Einsatz), zeigt mir, dass Du nicht sicher in der Materie VBA bist.
(zeigt ja auch Deine Selbsteinschätzung der VBA-Kenntnisse)
Wenn Du Interesse an Deinem Arbeitsplatz hast, rate ich Dir dringend, hier nicht mit Forenhilfe ein "Programm" zu erstellen, welches Dir jederzeit um die Ohren fliegen und die vorhandene Datenbasis zerschießen kann!

Nutze folglich wie oben gezeigt die eingebauten Funktionalitäten!

Gruß Ralf
Anzeige
Noch etwas
28.10.2024 07:42:33
RPP63
Du hast in Deinem MB-Monster bisher 90(!) Daten [Range("B4:B93")].
Da läuft doch gehörig was falsch!
Speichere die Buchungsliste (A:H) in einer separaten Datei.
Dann dürftest Du bei 8 KB landen.
Auswertungen macht man dann in einer anderen Datei.
AW: Noch etwas
28.10.2024 14:29:48
Piet
Hallo

ich weiss ja nicht ob der Sortierbereich immer bis Zeile 93 geht??
Ich verwende für einfaches sortieren lieber den alten Excel 2003 Code, ist einfacher zu programmieren
Der sucht auch in Spalte A immer die LastZell und passt den Sortierbereich automatisch an die LastZell an.

mfg Piet



Sub Sortieren()
lz1 = Cells(Rows.Count, 1).End(xlUp).Row
Range("A4:H" & lz1).Sort Key1:=Range("B4"), Order1:=xlAscending, _
Header:=xlNo, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End Sub
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige