Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
796to800
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
796to800
796to800
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

speichern nur beim Schließen erlauben

speichern nur beim Schließen erlauben
06.09.2006 19:09:09
Michael
Liebe Leute,
leider bin ich im Archiv nicht schlau genug geworden.
Ich möchte, dass die Datei in der der Code steht, nicht gespeichert werden kann ohne dass sie danach geschlossen wird.
In "DieseArbeitsmappe" habe ich folgenden Code geschrieben:
- - -

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim antwort As Integer
antwort = MsgBox("Achtung: Wenn Sie diese Arbeitsmappe speichern wird sie anschließend geschlossen." & Chr(13) _
& "Möchten Sie die Arbeitsmappe wirklich speichern und schließen?", vbYesNo, "ACHTUNG:")
If antwort = 6 Then
ThisWorkbook.Save
If Workbooks.Count = 1 Then Application.Quit
If Workbooks.Count > 1 Then ThisWorkbook.Close
Else
Cancel = True
End If
End Sub

Dabei gibt es aber 2 Probleme:
1. ThisWorkbook.Save innerhalb von BeforeSave führt zu einer Schleife
2. Laufzeitfehler '1004'. Auf '[:]' konnte nicht zugegriffen werden ...
Anscheinend ist das Problem das Schliessen der Datei in der ja der Code steht
Wer weiss Rat?
Dank & Gruß, Michael

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

Betreff
Datum
Anwender
Anzeige
AW: speichern nur beim Schließen erlauben
06.09.2006 19:49:41
olaf
Warum gehst Du nicht den Weg, daß Du einen Button auf die Oberfläche legst, mit der der Anwender die Möglichkeit hat, die Datei zu speichern und gleichzeitig zu beenden. Über die BeforeSave-Funktion verhinderst Du einfach das manuelle Speichern, in dem Du abfragst, ob der Speicherbefehl auch wirklich vom Button kam.
Olaf
AW: speichern nur beim Schließen erlauben
07.09.2006 17:36:19
Michael
Hallo,
und danke Olaf & Rudi.
Hab Deine Idee mit Hilfe von H.Herbers Code-Bausteinen so umgesetzt, Olaf:
In "DieseArbeitsmappe":
-----

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim nme As Name
On Error Resume Next
Set nme = ThisWorkbook.Names("OK")
If Err > 0 Or nme Is Nothing Then
MsgBox "Diese Datei kann nur über den Schalter gespeichert werden " & Chr(13) & _
"und wird anschliessend automatisch geschlossen."
Cancel = True
End If
End Sub

-----

Private Sub Workbook_Open()
On Error Resume Next
ThisWorkbook.Names("OK").Delete
On Error GoTo 0
End Sub

----
In Tabelle1:

Private Sub CommandButton1_Click()
ThisWorkbook.Names.Add "OK", _
RefersTo:=Range("A1"), Visible:=False
ThisWorkbook.Save
If Workbooks.Count > 1 Then
ThisWorkbook.Close
Else
Application.Quit
End If
End Sub

---
Das Körnchen Salz in der Suppe ist jetzt noch:
Wenn man auf SpeichernUnter geht, wird die ursprüngliche Datei auch automatisch geschlossen. Und das soll erlaubt sein! - wird aber natürlich in BeforeSave abgefangen. Wie kann man denn unterscheiden, ob der Speichern Befehl von "speichern" oder von "speichern unter" kommt?
Gruß & Dank, Michael
Anzeige
AW: speichern nur beim Schließen erlauben
07.09.2006 17:43:25
Rudi
Hi,

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If SaveAsUI then
MsgBox "Speichern unter..."
else
MsgBox "Speichern..."
end if
End Sub

AW: speichern nur beim Schließen erlauben
08.09.2006 10:11:56
Michael
Hallo Rudi,
super, danke. Jetzt läuft es wie es soll.
Gruß, Michael
AW: speichern nur beim Schließen erlauben
06.09.2006 20:14:48
Rudi
Hi,
das geht so nicht, da beißt sich die Katze in den Schwanz.
mfg Rudi

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige