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

VBA - Speichern BeforeClose schlägt fehl

VBA - Speichern BeforeClose schlägt fehl
23.04.2020 11:51:54
Marcel
Mahlzeit,
ich habe folgendes Problem. WEnn der User Excel mittels Schließen schließt, dann wird dies bei Änderung standardmäßig abgefangen und gefragt ob gespeichert werden soll. Da bei mir aber nur bestimmte Dateitypen zugelassen werden/sollen habe ich dieses "Abfangen" durch meinen Code ersetzt.
Problem dabei ist, dass nicht gespeichert wird! Wenn ich allerdings manuell mittels "Speichern" bzw. "Speichern Unter" speichere klappt es.
Hier einmal mein Code:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error GoTo ErrorHandler   ' Enable error-handling routine.,
If ThisWorkbook.Saved = False Then
iClick = MsgBox("Sollen Ihre Änderungen gespeichert werden?", vbYesNoCancel +  _
vbExclamation)
Select Case iClick
Case vbNo:
ThisWorkbook.Saved = True
Case vbYes:
ThisWorkbook.Save
ThisWorkbook.Saved = True
Case Else:
Cancel = True
End Select
End If
Exit Sub
ErrorHandler:
Call validFunctions.ErrorHandler(Err)
End Sub


Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
On Error GoTo ErrorHandler   ' Enable error-handling routine.,
'lässt nur speichern als pdf, xlsm oder xltm zu
Dim varFileName As Variant
Application.EnableEvents = False
Call verstecken
If SaveAsUI = True Then
varFileName = Application.GetSaveAsFilename( _
fileFilter:= _
"Excel Macro Enabled Workbook (*.xlsm),*.xlsm," & _
"Excel Macro Enabled Template (*.xltm),*.xltm," & _
"PDF Files (*.pdf), *.pdf", _
InitialFileName:="Bericht - (Ort) - " & Date & ".xlsm")
If varFileName  False Then
Select Case LCase(Right(varFileName, 4))
Case ".pdf"
ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=varFileName, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=True
Case Else
If Right(varFileName, 4) = "xlsm" Then
ActiveWorkbook.SaveAs Filename:=varFileName, _
FileFormat:=xlOpenXMLWorkbookMacroEnabled
Else
ActiveWorkbook.SaveAs Filename:=varFileName, _
FileFormat:=xlOpenXMLTemplateMacroEnabled
End If
End Select
End If
Cancel = True
Else
Cancel = True
ActiveWorkbook.Save
End If
Call anzeigen
Application.EnableEvents = True
Exit Sub
ErrorHandler:
Call validFunctions.ErrorHandler(Err)
Cancel = True
End Sub
Jemand ne Idee woran dies liegt?

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

Betreff
Datum
Anwender
Anzeige
AW: VBA - Speichern BeforeClose schlägt fehl
23.04.2020 12:04:26
Hajo_Zi
Die meisten bauen Deine Datei nicht nach. Die Zeit hat schon jemand investiert.
Ein Nachbau sieht meist anders aus als das Original. Darum sollte das Original verlinkt werden.
Die meisten möchten es am Original testen um den gleichen Fehler zu erhalten.
Wenn du an Stelle einer Demomappe deine Originalmappe hochladen willst, diese aber sensible Daten enthält, kannst du diese Daten
http://www.ms-office-forum.de/forum/showthread.php?t=322895
änderrn.
Das ist nur meine Meinung zu dem Thema.
Benutze hier im Forum die Funktion zum hochladen. Falls Du die nicht benutzen möchtest beachte, von unsicheren Servern wie z.B. www.file-upload.net lade ich keine Datei runter. (lt. Einschätzung meines Virenprogramms)

Anzeige
AW: VBA - Speichern BeforeClose schlägt fehl
23.04.2020 12:14:16
Daniel
hi
in solchen Fällen hilft es, sich Haltepunkte in die Makros zu setzen um dann im Einzelstep durchzu
gehen. dann sieht man, in welcher Reihenfolge die Events ablaufen und welche befehle ausgeführt werden.
gruß Daniel
AW: VBA - Speichern BeforeClose schlägt fehl
23.04.2020 13:24:33
Marcel
Haltepunkte habe ich gemacht und es läuft durch.
Das komische ist, wenn die Datei vorher manuell einmal gespeichert wurde klappt es. Wurde die Datei allerdings nicht manuell gespeichert klappt es nicht.
Würde gerne ein Beispiel-File hochladen aber irgendwie kann ich keine .xlsm bzw .xltm Dateien hochladen
AW: VBA - Speichern BeforeClose schlägt fehl
23.04.2020 13:37:14
Daniel
Hi
"klappt nicht" ist als Fehlerbeschreibung nicht besonders aussagekräftig um daraus eine Fehlerdiagnose ableiten zu können, du solltest schon genauer beschreiben wie sich dieses "klappt nicht" bemerkbar macht.
beim Testen im Einzelstep sollt man nicht nur darauf achten, obs durchläuft sondern darauf, welche Zeilen in welcher Reihenfolge abgearbeitet werden.
auf eine Datei, die noch nie gepeichert wurde, kann man .Save nicht anwenden, denn diese Datei hat noch keinen Namen und noch keinen Speicherpfad.
gruß Daniel
Anzeige
AW: VBA - Speichern BeforeClose schlägt fehl
23.04.2020 14:36:13
Marcel
Habs gelöst bekommen.
Habe ThisWorkbook.Save durch Call Workbook_BeforeSave(True, False) ersetzt.

204 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige