Excell Sortierung beim Schließen

Hallo zusammen, eigentlich ein kleines Problem, komme aber nicht auf die Lösung.
In meiner Tabelle sind zwei Spalten. Die Spalte A mit Namen und Spalte B mit Telefonnummern.
Jetzt möchte ich, dass neue Einträge am Ende Tabelle automatisiert beim Schließen in die Tabelle einsortiert werden.

Kann mir jemand Helfen?
Vielen lieben Dank und einen schönen Start in die Woche,
Peter

hallo.

Hallo zusammen, eigentlich ein kleines Problem, komme aber
nicht auf die Lösung.
In meiner Tabelle sind zwei Spalten. Die Spalte A mit Namen
und Spalte B mit Telefonnummern.
Jetzt möchte ich, dass neue Einträge am Ende Tabelle
automatisiert beim Schließen in die Tabelle einsortiert
werden.

das geht über das VBA-makro Workbook_BeforeClose().

gruß

michael

Hallo Peter

das geht über das VBA-makro Workbook_BeforeClose().

Diese Antwort ist korrekt, aber etwas knapp. Da deine VK äusserst knapp ist, kann ich nicht abschätzen, ob dieser Tipp genügt. Falls nicht, melde dich!
Erich

Stimmt die Antwort ist ein wenig knapp.
Könnte Ihr mir noch ein wenig mehr helfen?

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Stimmt die Antwort ist ein wenig knapp.
Könnte Ihr mir noch ein wenig mehr helfen?

Hi Wiemann,
Extras–Makro–Aufzeichnen…
Dann markierst du A ^ B , sortierst nach Wunsch und beendest die Makroaufzeichnung.
Mit Alt+F11 kommst du in den Vba-Editor, dort dann Doppelklick auf „Modul1“. Du siehst dort dann das Makro1.
Den Mittelteil, also ohne Sub Makro1() und End Sub kopierst du raus.
Dann Doppelklick auf „DieseArbeitsmappe“. In der Mitte ist ein Auswahlfeld, dort wählst du via Klick auf den Pfeil „Workbook“ aus, danach rechts davon im anderen Auswahlfeld „BeforeClose“, automatisch wird dann die Hülle für das Ereeignismakro „Workbook_BeforeClose“ erstellt.
In diese Hülle fügst du den kopierten Teil von Makro1 ein. Alle Zeilen mit Hochkomma kannst du löschen.
Übrig bleibt ein 2Zeiler, etwa so

Range(„A1:B??“).Select
Selection.Sort …

Das was nach „Sort“ steht, behälst du bei, vor „Sort“ änderst du es ab, dass es so aussieht:

Sub Workbook_BeforeClose(…)
Dim Zei as Long
Zei=Range(„A65536“).End(xlup).row
Range(„A1:B“ & Zei).Sort …
End Sub

„Modul1“ kannst du dann durch echtsklick darauf löschen.
Es ist schneller gemacht als beschrieben, ich habe hier aber leider kein Excel.
Gruß
Reinhard

Gruß
Reinhard

Gruß
Reinhard

oje,
jetzt habe ich folgendes Ausprobiert:

Sub Workbook_BeforeClose()
Dim Zei As Long
Zei = Range(„A65536“).End(xlUp).Row
Range(„A7273“).Select
Selection.Sort Key1:=Range(„A7273“), Order1:=xlAscending, Header:=xlGuess _
, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End Sub

Klappt aber nicht.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

hallo.

Sub Workbook_BeforeClose()
Dim Zei As Long
Zei = Range(„A65536“).End(xlUp).Row
Range(„A7273“).Select
Selection.Sort Key1:=Range(„A7273“), Order1:=xlAscending,
Header:=xlGuess _
, OrderCustom:=1, MatchCase:=False,
Orientation:=xlTopToBottom
End Sub

sieht doch ganz ordentlich aus.

Klappt aber nicht.

weil die sub Workbook_BeforeClose einen boolean-parameter benötigt. ersetze also
sub Workbook_BeforeClose()
durch
sub Workbook_BeforeClose(x as boolean)

statt x kannst du auch irgendwas anderes schreiben.
dann klappt’s auch mit dem nachbarn :smile:

gruß

michael

Sub Workbook_BeforeClose()
Dim Zei As Long
Zei = Range(„A65536“).End(xlUp).Row
Range(„A7273“).Select
Selection.Sort Key1:=Range(„A7273“), Order1:=xlAscending,
Header:=xlGuess _
, OrderCustom:=1, MatchCase:=False,
Orientation:=xlTopToBottom
End Sub
Klappt aber nicht.

Hi Wiemann,

Sub Workbook_BeforeClose(…)
Dim Zei As Long
Zei = Range(„A65536“).End(xlUp).Row
Range(„A1:B“ & Zei).Sort Key1:=Range(„A1“), Order1:=xlAscending, _
Header:=xlGuess , OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End Sub

Gruß
Reinhard

Vielen Lieben Dank für die Hilfe. Mit Michael´s klappt es letztlich.
Hatte schon fast aufgegeben.
Noch mal Danke, super Forum!

Grüße
Peter

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]