Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
720to724
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
720to724
720to724
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Speichern-Dialogbox verhindern

Speichern-Dialogbox verhindern
20.01.2006 11:05:35
Tobias
Hallo,
ich habe folgene Prozedur geschrieben:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim fehler, zeile, spalte As Integer
fehler = 0
For zeile = 1 To 1000
For spalte = 1 To 10
If ActiveSheet.Cells(zeile, spalte).Interior.ColorIndex = 46 Then
fehler = 1
Exit For
End If
Next
If fehler = 1 Then
MsgBox "Aufgrund der Fehlereingaben kann die Mappe nicht gespeichert werden! Bitte korrigieren!"
ActiveSheet.Cells(zeile, spalte).Select
Cancel = True
Exit For
End If
Next
End Sub

Dies funktioniert zwar, aber ich brauche noch Codezeilen, die bewirken, dass bei Fehler der Workbook NICHT geschlossen werden darf!
Denn bei meiner obigen Vorgehensweise wird nach Schliessen meiner Messagebox ein weiterer Dialogbox geöffnet mit folgendem Inhalt:
"Sollen Ihre Änderungen im xxxxx gespeichert werden?
Ja Nein Abbrechen"
Dieser Dialogbox darf nicht auftauchen! Wie kann ich das bewerkstelligen?
Gruss
Tobias

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Speichern-Dialogbox verhindern
20.01.2006 11:25:00
Matthias
Hallo Tobias,
also das klappt bei mir ohne zusätzliche Fragebox:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim fehler As Boolean
Dim zelle As Range
fehler = False
For Each zelle In ActiveSheet.Range("A1:J1000")
If zelle.Interior.ColorIndex = 46 Then
fehler = True
Exit For
End If
Next
If fehler Then
MsgBox "Aufgrund der Fehlereingaben kann die Mappe nicht gespeichert werden! Bitte korrigieren!"
zelle.Select
Cancel = True
End If
End Sub

Gruß Matthias
AW: Speichern-Dialogbox verhindern
20.01.2006 12:56:28
Tobias
Hallo Matthias,
Das funktioniert leider nicht bei mir.
Wenn ich auf das "X" in der rechten oberen Ecke des Windows-Fensters anklicke, wird die Funktion Workbook_BeforeClose()" gestartet.
Die Vorgehensweise, die du geschrieben hast, ist identisch mit meiner Vorgehensweise.
Wenn ich aber die Messagebox mit "OK" betätige, kommt trotzdem die weitere Dialogbox mit der Frage, ob die Eintragungen gespeichert werden sollen.
Diese Dialogbox taucht nämlich nur dann auf, wenn ich vor dem Schliessen eine Änderung durchgeführt habe, ohne sie zu speichern.
Genau dies möchte ich verhindern. Nur bloss, wie!?
Weisst du da was?
Gruss
Tobias
Anzeige
AW: Speichern-Dialogbox verhindern
20.01.2006 13:01:41
Matthias
Hallo Tobis,
bei mir kommt das nicht, aber schreibe mal

ThisWorkbook.Saved = True

vor Cancel = True (innerhalb der If-Then-Schleife)
Gruß Matthias
AW: Speichern-Dialogbox verhindern
20.01.2006 13:52:10
Tobias
Hallo Matthias,
Das stimmt, mit der Eingabe von "ThisWorkbook.Saved = True"
wird die Ausgabe der Dialogbox verhindert.
Aber ich vergass, noch hinzuzufügen, dass ich auch eine Funktion "Workbook_BeforeSave()" mit gleichem Inhalt wie bei "Workbook_BeforeClose()" eingebaut habe.
Da diese Funktion BeforeSave auch aktiv ist, wird nach der Eingabe von "ThisWorkbook.Saved = True" die Dialogbox erscheinen mit der Hinweismeldung
"Aufgrund der Fehlereingaben kann die Mappe nicht gespeichert werden! Bitte korrigieren!"
Und dann kommt wieder die Dialogbox mit der Speichernabfrage.
Sorry, dass ich vergessen hatte, die zusätzliche Funktion auch gleich am Anfang zu erwähnen.
Gruss
Tobias
Anzeige
AW: Speichern-Dialogbox verhindern
20.01.2006 14:12:38
Matthias
Hallo Tobias,
scheibe die Prüfroutine als Funktion in ein Modul und Prüfe das schon im BeforeSave-Ereignis. Denn das kommt m.W. vor dem BeforeClose-Ereignis.
Gruß Matthias
AW: Speichern-Dialogbox verhindern
20.01.2006 14:33:19
Tobias
Hallo Matthias,
ich verstehe deine Antwort nicht ganz.
Willst du damit sagen, dass ich die Prüfroutine innerhalb von BeforeSave herausnehmen und als eigenständige Funktion mit dem Namen "Funktion1" in das Modul einbauen soll?
Und dann soll ich den Aufruf dieser Funktion "Funktion1" innerhalb der BeforeSave einbauen?
Ich glaube, das meinst du nicht.
Kannst du es mir bitte genauer erklären.
Gruss
Tobias
Anzeige
AW: Speichern-Dialogbox verhindern
20.01.2006 15:08:29
Matthias
Hallo Tobias,
wenn das Blatt "fehlerhaft" ist, darf es also weder gespeichert nocht geschlossen werden?
Es sollte aber doch die Möglichkeit bestehen, dass der Anwender die Mappe schließt, ohne zu speichern.
Wie dem auch sei, ich kann dein Problem in der Form nicht nachvollziehen. Hab das ganze mal nachgebaut:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
MsgBox "BeforeClose"
If BlattFehlerhaft Then
Cancel = True
MsgBox "Fehler im Blatt!"
End If
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
MsgBox "BeforeSave"
If BlattFehlerhaft Then
Cancel = True
MsgBox "Fehler im Blatt!"
End If
End Sub

In ein Modul:

'vereinfacht, Blatt ist fehlerhaft, wenn in A1 ein "x" steht:
Function BlattFehlerhaft(Optional sh) As Boolean
If IsMissing(sh) Then Set sh = ActiveSheet
BlattFehlerhaft = sh.Range("A1") = "x"
End Function

Und es kommt keine Meldung, ob gespeichert werden soll.
Gruß Matthias
Anzeige
AW: Speichern-Dialogbox verhindern
20.01.2006 15:41:47
Tobias
Hallo Matthias,
ich habe dich nun verstanden und die geänderte Prozedur nachgezogen.
Die Meldung taucht doch wieder auf.
Ich bin wirklich am Verzweifeln.
Du hast mich vollkommen richtig verstanden:
Wenn eine Zelle fehlerhaft ist, darf der Workbook weger gespeichert noch geschlossen werden.
Seufz!
Ich mache erst einmal eine Auszeit und tanke mir meine Kräfte übers Wochenende auf.
Dann sehen wir weiter am Sonntag oder Montag.
Schönes WE!
Gruss
Tobias
AW: Speichern-Dialogbox verhindern
20.01.2006 15:44:01
Matthias
Hallo Tobias,
poste doch noch die beiden Ereignisprozeduren, wie sie nicht laufen, dann hab ich am WE was zu tun ;-)
Gruß Matthias
Anzeige
AW: Speichern-Dialogbox verhindern
23.01.2006 12:42:12
Tobias
Hallo Matthias,
soll ich jetzzt die beiden Ereignisse posten, oder hast du heute keine Zeit dafür?
Gruss
Tobias
AW: Speichern-Dialogbox verhindern
24.01.2006 11:02:06
Matthias
Hallo Tobias,
es soll ja die Forumgemeinde antworten und nicht unbedingt ich persönlich.
Das der Thread schon recht alt ist, macht doch einen neuen auf, formuliere die Frage neu und gibt einen Link auf den bisherigen Thread mit an.
Gruß Matthias

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige