msofiledialogsaveas speichert nicht
13.08.2014 19:32:12
Matthias
ersteinmal vielen Dank an die Beiträge, die mich bei meinen bisherigen Problemen sehr gut unterstützt haben.
Meine Problem wurde schon ähnlich hier im Forum behandelt: https://www.herber.de/forum/archiv/1228to1232/1228284_xltmDatei_nach_oeffnen_als_xlsm_abspeichern.html.
Solange ich den Boardeigenen "Speichern", "Speichern unter" Button, die Tastenkürzel "Strg + S" oder "F12" verwende funktioniert alles wunderbar. Ich lasse per Makro die Ribbon-Leiste ausblenden, daher steht dem Benutzer kein "Speichern" Button, oder Dateimenü zur Verfügung.
Ich möchte das Speichern auch per Makro lösen und habe daher in einem Modul ein Sub angelegt.
Sub Speichern_neu()
With ThisWorkbook
.save
End Sub
Das Makro im ActiveWorkbook sieht äquivalent zu oben im Link beschriebenen aus.
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
' MsgBox "Datei-Format: " & Me.FileFormat ' Testzeile
Dim iFilterIndex As Integer
If Me.Path = "" Then 'Prüfen, ob Datei schon gespeichert wurde
Application.EnableEvents = False
Cancel = True
If Val(Left(Application.Version, 2)) >= 12 Then 'Excel-Versionsprüfung
'Excelversion 2007 und neuer
Select Case Me.FileFormat
Case 52 'xlOpenXMLWorkbookMacroEnabled - Excel 2007 mit Makros
iFilterIndex = 2 'Standardmäßig xlsm unter Excel 2007
Case 56 'xlExcel8 - Excel 98 bis 2003
iFilterIndex = 4 'Standardmäßig xls unter Excel 2007
Case Else
iFilterIndex = 1 'Standardmäßig xlsx unter Excel 2007
End Select
'Speichern unter Dialog anzeigen
With Application.FileDialog(2) '2 = msoFileDialogSaveAs
.InitialView = 2 '2 = msoFileDialogViewDetails
.FilterIndex = iFilterIndex
If .Show False Then
.Execute
End If
End With
Else
'Ältere Excelversionnen - SaveAs Dialog anzeigen
Application.Dialogs(5).Show '5 = xlDialogSaveAs
End If
Application.EnableEvents = True
End If
End Sub
Es erscheint keine Fehlermeldung, aber es wird keine Datei angelegt! Ich finde leider den Fehler nicht und bitte daher um Ihre Mithilfe.
Vielen Dank schon im Voraus
Gruß Matthias