Makro - Datei abspeichern - Datenverlust?
#1
Rainbow 
Hallo zusammen,

ich habe folgenden funktionieren Code in einer Testdatei zum Laufen gebracht. Wenn ich jetzt eine etwas größere Arbeitsdatei bei uns damit abspeichern will, dann sagt er mir " Erheblicher Funktionalitätsverlust". Im Endeffekt speichert er dann die datei ohne daten mit 0 KB...habt Ihr eine Idee woran es liegt?

Sub SPEICHERN()
'Datei und Pfad sind Wörter, die in VBA
'Verwendung finden und deshalb verboten
'sind
Dim sDatei As String, sZielDatei As String
Dim Pos
'Dim sPfad As String
'hier fehlt der Backslash (\)
'sPfad = ThisWorkbook.Path
sPfad = ActiveWorkbook.Path & "\"
sDatei = ActiveWorkbook.Name
'
'in Dateinamen sind z.B. Doppelpunkte
'nicht erlaubt
'Dateinamen extrahieren
Pos = InStrRev(sDatei, ".", , vbTextCompare)
sZielDatei = sPfad & Mid(sDatei, 1, Pos - 1)
sZielDatei = sZielDatei _
& "_" & Format(Date, "yyyyMMdd")

'MsgBox sZielDatei
'
ActiveWorkbook.SaveAs Filename:=sZielDatei & ".xlsm", _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
ActiveWorkbook.Close
End Sub

vg, die Kirsche
Top
#2
Hallo Kirsche,
um ein .xlsm zu speichern,muss als Fileformat xlOpenXMLWorkbookMacroEnabled genutzt werden, also

ActiveWorkbook.SaveAs Filename:=sZielDatei & ".xlsm", FileFormat:=[b]xlOpenXMLWorkbookMacroEnabled[/b], Password:=...

sonst passen Endung und Format nicht zusammen.
Gruß der AlteDresdner (Win11, Off2021)
Top
#3
Moin!
Interessant finde ich:
Code:
'Datei und Pfad sind Wörter, die in VBA
'Verwendung finden und deshalb verboten
'sind

Was führt die Kirschgurke zu dieser falschen Erkenntnis?

Am Rande:
Es ist ein "Glaubenskrieg", ob man Variablen nach der ungarischen Notation benennen sollte.
Es gibt sogar (auch hier im Forum) ausgewiesene Koryphäen, die auf Deklaration gleich ganz verzichten.
Die "Wahrheit" ist wie so häufig irgendwo in der Mitte.
Jedenfalls spricht nichts dagegen, eine Variable Pfad oder Datei zu nennen.

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Top
#4
(23.07.2018, 19:07)RPP63 schrieb: Jedenfalls spricht nichts dagegen, eine Variable Pfad oder Datei zu nennen.

Hauptsache, sie wird überhaupt deklariert, was hier für die Pfadvariable nicht geschieht.

Gruß Uwe
Top
#5
Auch das noch!  Confused  :19:
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Top
#6
Hallöchen,

das ist wie mit allen Geschichten, ein Körnchen :15: Wahrheit findet sich zuweilen darin. Wenn schon,
Zitat:'Datei und Pfad sind Wörter, die in VBA
'Verwendung finden und deshalb verboten
'sind
würde ich hier Path und File erwähnen und nicht die deutsche Übersetzung. Unabhängig davon ist auch nix "verboten", man sollte nur das eine oder andere vermeiden, ansonsten merkt lediglich eventuell und irgendwann, dass etwas nicht geht oder anders läuft, als erwartet … :100:
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste