einzelne Zellen beim schliessen nicht speichern
#1
Hallo zusammen,

ich habe in Excel in Zelle A1 einen Countdown-Timer eingebaut und als Hilfe in A2 per VBA (beim Öffnen der Tabelle) einen Zeitstempel setzen lassen.

Wenn ich nun manuell an der Datei nichts ändere kommt natürlich trotzdem die Rückfrage beim schliessen ob gespeichert werden soll.

Da viele Kollegen auf die Datei zugreifen und diese manchmal manuell etwas ändern und manchmal nicht wäre es klasse die Rückfrage kommt nur dann wenn manuell eine Änderung vorgenommen wurde, also auf bestimmte Zellen beschränkt.

(ich kenne die Möglichkeit dass beim schliessen immer automatisch gespeichert werden soll oder dass die Frage nach dem Speichern nie kommen soll, beide Lösungen benötige ich nicht).

Kann mir einer von Euch helfen?

Danke und Grüße
Corbrameister
Antworten Top
#2
Hi,

deklariere in einem allg. Modul eine öffentliche, boolsche Variable (Bsp.: Public blnSpeichern as boolean). Im Change Ereignis des Blattes, checkst Du, ob das Target Teil der betreffenden Zellen ist (Stichwort Intersect).
Wenn ja, dann setze die Variable dann, wenn sie true ist, auf false, sonst auf true.

Im BeforeSave Ereignis schreibst Du in den Prozedurrumpf: Cancel = blnSpeichern
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben.
Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.

Ciao, Ralf

Antworten Top
#3
Hallo,

kontrolliere in dem Timer-Makro die Saved-Eigenschft des Workbooks vor den Zelleintragungen und führe sie danach genauso weiter:

Code:
Dim bolSaved As Boolean
  bolSaved = ThisWorkbook.Saved
  Range("A1") = "keine Ahnung"
  Range("A2") = Now
  ThisWorkbook.Saved = bolSaved

Gruß Uwe
Antworten Top
#4
Danke für Eure Antworten. Mein Fehler war dass ich vergessen habe mitzuteilen dass die Tabelle sich jede Sekunde aktualisiert damit der Countdown läuft. Habe eine ganz einfache VBA kopiert, bin VBA Anfänger. Bringt somit nichts wenn ich nach setzen des Zeitstempels speichere, sorry.

Hier ist mein Code:

Sub Datum()
Tabelle1.Range("A1").Value = Time
End Sub


Sub Countdown()
NextTime = Now + TimeValue("00:00:01")
Application.OnTime NextTime, "Countdown"
ActiveSheet.Calculate

End Sub


Bei Start der Datei werden diese beiden Sub automatisch gestartet.


Ich habe diese Anleitung etwas umgebaut.

https://www.hanseatic-business-school.co...countdown/ 

Kann mir jemand helfen dass bei dieser Kombination keine Speichern-Frage komt wenn ich manuell nichts ändere?

Danke!
Antworten Top
#5
Hallöchen,

ungefähr so

Sub Datum()
Dim bolSaved As Boolean
bolSaved = ThisWorkbook.Saved
Tabelle1.Range("A1").Value = Time
Range("A2") = Now
ThisWorkbook.Saved = bolSavedEnd Sub
End Sub

Sub Countdown()
Dim bolSaved As Boolean
bolSaved = ThisWorkbook.Saved
NextTime = Now + TimeValue("00:00:01")
Application.OnTime NextTime, "Countdown"
ActiveSheet.Calculate
Range("A2") = Now
ThisWorkbook.Saved = bolSavedEnd Sub
End Sub
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#6
Hi, 

Danke für deine Hilfe, konnte es einbauen, hat funktioniert. 

Leider öffnet sich die Tabelle immer noch nachdem sie automatisch geschlossen wird. 

Egal, dann soll es nicht sein. Danke für Eure Mühe.

VG
Antworten Top
#7
Hallo,

(05.04.2022, 07:18)Cobrameister schrieb: Leider öffnet sich die Tabelle immer noch nachdem sie automatisch geschlossen wird. 

Guckst Du: Applicaton.OnTime - Zeitgesteuerte Makros

Gruß Uwe
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste