Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1412to1416
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

nicht sichern trotz Änderung

nicht sichern trotz Änderung
05.03.2015 18:24:07
Werner
Hallo Forum,
ich generiere ein neues Tabellenblatt und fülle es mit Daten. Später lösche ich dieses Blatt wieder, weil ich es nur vorübergehend benötige. Wenn ich nun mein Workbook schließe, werde ich immer gefragt, ob ich sichern möchte.
Jetzt habe ich die Idee, vor dem Erstellen des zusätzlichen Blattes zu prüfen, ob bereits eine Änderung vorliegt. Nach dem Löschen dieses Blattes könnte ich Excel davon "überzeugen", dass keine Änderung vorliegt, falls vor der Erstellung des neuen Blattes noch keine Änderung geschehen ist. Die Frage ist nur: wie mache ich das??
Gruß aus dem Schwabenland
Werner

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
ThisWorkbook.Saved = True
05.03.2015 18:51:51
Matthias
Hallo
Evtl. beim Close
ThisWorkbook.Saved = True
Dann wird aber immer angenommen es wurde nichts geändert.
Also mit Vorsicht benutzen.
Gruß Matthias

AW: ThisWorkbook.Saved = True
05.03.2015 22:05:21
Werner
Hallo,
ich habe ThisWorkbook.Saved inzwischen ausgewertet. Jetzt suche ich nur noch nach einer Lösung, zu erfahren, dass ein Feld geändert werden soll (also die Änderung noch nicht durchgeführt wurde, und die Variable ThisWorkbook.Saved deshalb unverändert gegenüber dem Stand vor dieser Änderung ist).
In der Workbook_SheetChange-Routine ist es zu spät, da ist Änderung schon durch.
Mir würde auch helfen, die Änderung einer bestimmten Zelle in einem bestimmten Blatt im Voraus zu erkennen. Gibt es dafür eine Event-Routine? (Select-for-change?)
Gruß
Werner

Anzeige
AW: ThisWorkbook.Saved = True
05.03.2015 22:24:49
Matthias
Hallo

Mir würde auch helfen, die Änderung einer bestimmten Zelle in einem bestimmten Blatt im Voraus zu erkennen.

Ja wenn Dir da was einfällt würde ich das dann für meinen nächsten Lottotippschein umsetzen ;-)
Im Ernst:
Wie soll denn Excel erkennen ob Du eine Zelle ändern willst?
Vielleicht hilft Dir eine Boolsche Variable die Du schaltest, wenn
ThisWorkbook.Saved = False ist (genau bevor Du Dein temporäres Blatt erstellst)
Diese Variable wertest Du dann nach dem Löschen des temporären Blattes aus..
Gruß Matthias

AW: ThisWorkbook.Saved = True
06.03.2015 09:08:45
Werner
Hallo Matthias,
natürlich war mir klar, dass es keine "Vorhersagen" geben kann, dass ein Feld geändert werden wird. Ich hatte aber gehofft, dass es einen Event gibt, der anzeigt, dass jetzt eine Änderung vorgenommen wird, und in der Celle noch der alte Inhalt vorzufinden ist.
Das mit der zusätzlichen Variablen habe ich bereits eingebaut. Vor dem Aufbau des temporären Blattes sichere ich mir den Inhalt von ThisWorkBook.Saved. Direkt nach dem Aufbau (aber vor der Auswahl eines Jahres) wird der gesicherte Wert wieder in ThisWorkBook.Saved gestellt. Wenn der Anwender nun das Workbook schließt, und beim Erstellen des temp. Blattes noch keine Änderung vorlag, so steht diese Variable noch immer auf "Wahr", und es wird keine Sicherung beim Schliessen verlangt.
Vielleicht sollte ich erwähnen, dass auf dem temporären Blatt eine Liste von Jahreszahlen zur Auswahl steht:
With Range("A1").Validation
.Delete
.Add Type:=xlValidateList, _
AlertStyle:=xlValidAlertStop, _
Operator:=xlBetween, _
Formula1:=Jahre
.IgnoreBlank = True
.InCellDropdown = True
.ShowInput = True
.ShowError = True
End With
Wenn jetzt der Anwender hier ein bestimmtes Jahr auswählt, liegt eine Change-Änderung vor, und ThisWorkbook.Saved wird auf jeden Fall auf "Falsch" gesetzt. Mein Problem liegt darin, dass der Anwender zwischen dem Aufbau des temporären Blattes und der Auswahl eines der angebotenen Jahre durchaus eine Änderung an einem der anderen Tabellen-Blättern vornehmen kann. Dann liegt eine tatsächliche Änderung vor, und das Workbook sollte beim Verlassen gesichert werden (was letztlich der Anwender selbst entscheiden muss).
Eine Lösung könnte auch sein, dass der Anwender nach dem Erstellen des temp. Blattes kein anderes Blatt auswählen kann, und somit gezwungen wird, als nächste Aktion eines der angebotenen Jahre auszuwählen. Doch wie kann ich das "Umschalten" auf ein anderes Blatt verhindern?
Danke und Gruß
Werner

Anzeige
AW: ThisWorkbook.Saved = True
06.03.2015 11:03:22
Matthias
Hallo
Zitat
Doch wie kann ich das "Umschalten" auf ein anderes Blatt verhindern?
Na blende die anderen Blätter doch einfach alle aus und lass nur
das temp. Blatt sichtbar.
Wenn z.B. das temporäre Blatt "Temp" heißt, dann so:
Option Explicit
Sub Ausblenden()
Dim x&
For x = 1 To Sheets.Count
If Sheets(x).Name  "Temp" Then
Sheets(x).Visible = xlVeryHidden
End If
Next
End Sub
Gruß Matthias

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige