Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1948to1952
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Ereignis beforeclose

Ereignis beforeclose
11.10.2023 09:27:00
Haderlein
Hallo Zusammen,

in der Zelle A2 gibt es eine Dropdown-Auswahl mit Jahreszahlen (2022,2023,2024 usw.). Sobald der User diese ändert wird der Code ausgeführt, funktioniert soweit. Nun möchte ich allerdings, dass der Code auch ausgeführt werden, bevor die Arbeitsmappe geschlossen wird. Daher wäre meine Idee:

'Steht in Diese Arbeitsmappe, damit ändere ich per Code den Zellinhalt und löse damit den eigentlichen Code aus
Option Explicit
Sub Workbook_BeforeClose(Cancel As Boolean)
Worksheets("Kapa-Planung").Range("A2").Value = "2023"
End Sub



'Im Arbeitsblatt "Kapa-Planung" steht folgendes:
Option Explicit
Sub Worksheet_Change(ByVal Target As Range)

Application.ScreenUpdating = False

Dim Speicher As Variant

If Target.Address = "$A$2" Then

Speicher = Target.Value
Application.EnableEvents = False
Application.Undo -Hier kommt der Fehler
Call Sichern
Target.Value = Speicher
Application.EnableEvents = True
Call Past
End Sub

Bei "Application.Undo" kommt folgender Fehler: "Die Methode Undo für das Objekt "_Application" ist fehlgeschlagen.
Ich glaube es hängt damit zusammen, dass ich den Wert nicht per Dropdown ändere, sondern per Skript. Ändere ich den Wert über das Dropwnfeld, dann funktioniert das Skript wie gewünscht. Was muss ich tun?

Vielen Dank.

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ereignis beforeclose
11.10.2023 09:48:00
daniel
Hi
UNDO (Rückgängig) funktioniert nur für Anwender-Änderungen.
Jegliche Änderung durch ein Makro löscht den UNDO-Speicher.

was soll denn beim Speichern passieren?
rufe doch die Makros Sichern und Past so wie du es brauchst aus dem BeforeClose-Makro heraus auf.
Gruß Daniel
AW: Ereignis beforeclose
11.10.2023 09:55:01
Haderlein
Hallo Daniel,

ich habe eine Auslastungsplanung und in Zeile 3 in jeder Zelle ab Spalte H steht: =SEQUENZ(;DATUM($A$2;12;31)-DATUM($A$2;1;1)+1;DATUM($A$2;1;1))
Sprich, abhöngig von der aktuellen eingetragenen Jahreszahl erstelle ich mit den Kalender (365 Tage / Spalten).

Das Programm arbeitet wie folgt:
1) User möchte einen Urlaubstag für z.B. 15.05.2024 eintragen, aktuelles Jahr im Dropdown ist aber 2023
2) User stellt Dropdown auf 2024 -> In diesem Augenblick steht in jeder der 365 Zellen bereits z.b. 15.05.2024
3) Skript startet, setzt den Wert mit Undo auf 2023 zurück, damit die eingetragenen Urlaubstage gespeichert werden können. Es wird also geschaut ob am 15.05.2023 ein Urlaub eingetragen ist.
4) Nachdem alle Tage aus 2023 gespeichert wurden, wird geprüft, ob in 2024 ebenfalls Urlaubstage eingetragen wurden.

Was ich möchte: Wenn der User nun für das aktuelle Jahr einen Urlaubstrag einträgt (also nicht die Dropdown-Auswahl ändert) und dann die Datei schließt, muss ich ja den neuen Urlaubstag auch speichern. Daher war meine Idee, das Skript auszulösen in dem ich den Zellwert in A2 ändere und damit das restliche Skript auslöst.

Grüße
Anzeige
AW: Ereignis beforeclose
11.10.2023 10:01:33
daniel
sollte es nicht reichen, das Makro "Sichern" im BeforeClose direkt auszuführen?
Gruß Daniel

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige