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

Schliesen.Abfrage.Speichern.VBA-Problem

Schliesen.Abfrage.Speichern.VBA-Problem
10.11.2006 09:57:23
Fabio
Hallo zusammen,
folgende Themen habe ich :
Mit dem folgenden "kurzen" Script lasse ich die Datei beim Schliessen speichern :

Private Sub Workbook_BeforeClose(Cancel As Boolean)
ActiveWorkbook.Save
End Sub

Zwei Probleme dazu :
a) Ich hätte gerne eine Abfrage ob speichern überhaupt gewünscht ist
-> aber wie ?
b) Wenn die Datei "schreibgeschützt" geöffent ist, dann soll natürlich nicht gespeichert werden - und auch keine Anfrage kommen. Wie kann ich das am einfachsten hinbekommen ?
Es gibt ja die Möglicheit :
If ActiveWorkbook.ReadOnly Then
Else
End If
etc...
-> nur da weiß ich nicht genau, wie ich das einbinden kann in die Speicher-Abfrage...
Wäre das eine Lösung ? (habe ich nicht probiert, weil ich mich damit viel zu wenig auskenne !)

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If ActiveWorkbook.ReadOnly Then
?was muss ich hier eingeben, damit er die Tabelle einfach schliesst ?
Else
ActiveWorkbook.Save
End If
End Sub

Etwas ratloser Fabio
Danke !

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

Betreff
Datum
Anwender
Anzeige
AW: Schliesen.Abfrage.Speichern.VBA-Problem
10.11.2006 10:18:11
marcl
Hallo Fabio,
versuch mal das, ist aber nciht getestet :-)

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If ActiveWorkbook.ReadOnly Then
frage = MsgBox("Speichern", vbYesNo)
If frage = 2 Then
ActiveWorkbook.Close savechanges = no
End If
Else
ActiveWorkbook.Save
End If
End Sub

Gruß
marcl
Frage:OHNE Speichern!(Else ohne if?)
13.11.2006 12:46:10
Fabio
Hallo,
Danke für die Lösung, die Funktioniert soweit auch. Aber nun noch eine Frage - wie müsste ich das ändern, das KEINE JA/NEIN-Abfrage kommt, sondern bei "readonly" einfach nicht gespeichert - sondern geschlossen wird.
So gehts leider nicht, da kommt eine Fehlermeldung "IF fehlt":
Original mit Abfrage :
If ActiveWorkbook.ReadOnly Then
frage = MsgBox("Speichern", vbYesNo)
If frage = 2 Then
ActiveWorkbook.Close savechanges = no
End If
Else
ActiveWorkbook.Save
End If
End Sub
Meine Änderungen (die Abfrage soll ja nun nicht kommen) :

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If ActiveWorkbook.ReadOnly Then
ActiveWorkbook.Close savechanges = no
End If
Else
ActiveWorkbook.Save
End If
End Sub

Und da kommt der Else ohne IF - Fehler
Danke !
Fabio
Anzeige
AW: Frage:OHNE Speichern!(Else ohne if?)
13.11.2006 15:19:20
marcl
hallo Fabio,
da war noch ein kleiner Fehler drinn. Jetzt müsste es gehen.

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If ActiveWorkbook.ReadOnly Then
ActiveWorkbook.Close savechanges = no
End If
frage = MsgBox("Speichern", vbYesNo)
If frage = 7 Then
ActiveWorkbook.Close savechanges = no
Else
ActiveWorkbook.Save
End If
End Sub

gruß
marcl
Danke und !
14.11.2006 11:06:37
Fabio
Hei marcl,
vielen Dank für die Lösung. Kannst Du die nochmals umstricken (nur wenn wirklich Zeit - weil das ist jetzt einfach nur ein "Nice to have" - das bei "wenn mit schreibschutz geöffnet keine Abfrage kommt - sondern einfach nur geschlossen wird. Danke !
Wenn keine Zeit - auch kein Thema - auf jeden Fall vielen lieben Dank für die bisherigen Lösungen !
Fabio
Anzeige
AW: Frage:OHNE Speichern!(Else ohne if?)
14.11.2006 11:40:24
marcl
Hi Fabio,
folgendes Makro nicht in ein Modul, sondern in "DieseArbeitsmappe" kopieren:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If ActiveWorkbook.ReadOnly Then
Application.DisplayAlerts = False
ActiveWorkbook.Close
End If
frage = MsgBox("Speichern", vbYesNo)
If frage = 7 Then
ActiveWorkbook.Close savechanges = no
Else
ActiveWorkbook.Close savechanges = yes
End If
End Sub

nun sollte es funktionieren,
Gruß
marcl

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige