Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Datei beim beenden unter 2 Formaten automatisch speichern

Forumthread: Datei beim beenden unter 2 Formaten automatisch speichern

Datei beim beenden unter 2 Formaten automatisch speichern
18.06.2025 11:11:04
Werner
Guten Morgen

Bräuchte wieder einmal euere Hilfe:

Ist es möglich eine Datei (geöffnet im Dateiformat xlsm) beim beenden automatisch als xlsm und als xlsx zu speichern?

Grund: Habe immer das Problem, dass ich eine Datei die als xlsm gespeichert (auf PC) sich mit dem Handy (Android) mit der Excel App nicht öffnen lässt.


Vielen Dank vorab für euere Hilfe.

Gruß Werner
Anzeige
AW: Datei beim beenden unter 2 Formaten automatisch speichern
18.06.2025 11:23:20
Fennek
Hallo,

ja, es sollte gehen. "Workbook.Saveas" erlaubt den Dateityp zu setzen. Der Code muss auch die Rückfragen "Wollen Sie wirklich als xlsx speichern" automatisch beantworten können.

Etwas "Tüftelarbeit" ist das schon.

mfg
AW: Datei beim beenden unter 2 Formaten automatisch speichern
18.06.2025 11:51:36
daniel
Hi
nur mit VBA.
Dazu diesen Code ins Modul "DieseArbeitsmappe" kopieren

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

Dim nme As String

If Not SaveAsUI Then
nme = ThisWorkbook.FullName
nme = Left(nme, InStrRev(nme, ".") - 1)
Application.EnableEvents = False
Application.DisplayAlerts = False
Me.SaveAs nme, xlOpenXMLWorkbook
Me.SaveAs nme, xlOpenXMLWorkbookMacroEnabled
Application.EnableEvents = True
Application.DisplayAlerts = True
Cancel = True
End If
End Sub


beim normalen Speichern wird die Datei dann in den beiden Varianten xlsx und xlsm gespeichert.
Beim Speichern_unter nicht (war mir zu kompliziert, das sauber auszuprogrammieren), dh wenn du unter einem anderen Namen speichern willst musst du ggf danach nochmal speichern.

Gruß Daniel
Anzeige
AW: Datei beim beenden unter 2 Formaten automatisch speichern
18.06.2025 19:16:34
UweD
Hallo Daniel

Habe mir aus Interesse deine Lösung auch mal angesehen.

Prima gelöst.

Interessant, wenn die Datei als xlsx gespeichert, aber noch nicht geschlossen wird, dass dann der Code noch enthalten ist.

Spart das SaveCopyAs...

LG UweD
AW: Datei beim beenden unter 2 Formaten automatisch speichern
18.06.2025 19:30:17
daniel
naja wenn das Makro auch in der Rechnerdatei schon beim Speichern gelöscht werden würde, dann müsste der Löschvorgang ja in einen laufenden Prozess eingreifen.
das tut so nicht.
Vermutlich ist es so, dass beim Speichern als xlsx oder xlsm die Datei nicht direkt gespeichert wird, sondern sowieso in xml-Code gewandelt werden muss. Dabei kann man dann den Makroteil löschen (das reguläre Format ist xlsb)
ähnliches hast du ja auch, wenn du als CSV speicherst. Dann wird deine Datei auch zur CSV, obwohl alle Excelfunktionalitäten noch vorhanden sind.

wobei ich es trotzdem für sinnvoll halten würde, wenn ein SaveCopyAs auch mit anderen Dateiformaten funktionieren würde.

Gruß Daniel
Anzeige
AW: Datei beim beenden unter 2 Formaten automatisch speichern
18.06.2025 12:39:42
UweD
Hallo

Es klappte bei mir erst mit dem Umweg über eine Temporäre Datei.



Code gehört in "DieseArbeitsmappe"

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Dim Pfad As String, Datei As String, WbCopy As Workbook
On Error GoTo Fehler
Const APPNAME = "Workbook_BeforeClose"

With ThisWorkbook
.Save
Pfad = .Path & "\"
Datei = Replace(.Name, ".xlsm", "")

'Kopie speichern
.SaveCopyAs Pfad & Datei & "_temp.xlsm"
End With

'Kopie öffnen (schreibgeschützt)
Set WbCopy = Workbooks.Open(Pfad & Datei & "_temp.xlsm", ReadOnly:=True)

'Als .xlsx speichern (ohne Makros)
Application.DisplayAlerts = False
WbCopy.SaveAs fileName:=Pfad & Datei & ".xlsx", FileFormat:=xlOpenXMLWorkbook

Application.EnableEvents = False
WbCopy.Close SaveChanges:=False
Kill Pfad & Datei & "_temp.xlsm" 'Temporäre Datei löschen

'*** Fehlerbehandlung
Err.Clear
Fehler:
Application.EnableEvents = True
If Err.Number > 0 Then MsgBox "Fehler in Sub """ & APPNAME & """" & vbCrLf _
& "Fehlernummer: " & Err.Number & vbLf & Err.Description: Err.Clear
End Sub




LG UweD
Anzeige
AW: Datei beim beenden unter 2 Formaten automatisch speichern
18.06.2025 18:26:57
Werner Denner
Hallo UweD

Funktioniert wie es soll.

Herzlichen Dank dafür.

Werner
AW: Datei beim beenden unter 2 Formaten automatisch speichern
18.06.2025 18:44:14
daniel
und meine Lösung funktioniert nicht?
oder warum bedankst du dich nicht bei mir?
ich bin jetzt etwas verwirrt.
AW: Datei beim beenden unter 2 Formaten automatisch speichern
18.06.2025 21:07:13
Werner Denner
Habe die Lösung von UweD genommen.
Trotzdem an alle:
Vielen Dank für euere Hilfe.

Werner
Anzeige
AW: Datei beim beenden unter 2 Formaten automatisch speichern
18.06.2025 21:11:56
daniel
Hi
ok, interessant.
worin siehst du die Vorteile von Uwes Lösung?
was macht er aus deiner Sicht besser als ich?
ich möchte ja auch was dazu lernen.
Gruß Daniel
AW: Datei beim beenden unter 2 Formaten automatisch speichern
18.06.2025 11:31:50
Werner
Hallo Fennek

Danke für die Rückmeldung, aber ich bin leider nicht so visiert in Excel dass ich das selber hinbringen würde.
Deshalb benötige ich weitere Hilfe.

Werner
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige