Function
FileSaveAs()
As
Boolean
Dim
varResult
As
Variant
Dim
objFSO
As
New
Scripting.FileSystemObject
Dim
strFilePathOrig
As
String
Dim
strFilePathSik
As
String
Dim
strTMPFile
As
String
strFilePathSik = ActiveWorkbook.Path & Application.PathSeparator &
"sik"
& Application.PathSeparator & ActiveWorkbook.Name
strFilePathOrig = ActiveWorkbook.Path & Application.PathSeparator & ActiveWorkbook.Name
varResult = Application.GetSaveAsFilename(InitialFileName:=strFilePathOrig, FileFilter:= _
"Excel Arbeitsmappe (*.xlsx), *.xlsx, Excel Arbeitsmappe mit Makros (*.xlsm), *.xlsm"
, _
FilterIndex:=IIf(ActiveWorkbook.HasVBProject, 2, 1))
If
Not
varResult =
False
Then
If
LCase(varResult) = LCase(strFilePathOrig)
Then
If
Not
objFSO.FileExists(strFilePathSik)
Then
strTMPFile = Environ(
"TEMP"
) &
"\Temp.xls"
& IIf(ActiveWorkbook.HasVBProject,
"m"
,
"x"
)
If
objFSO.FileExists(strTMPFile)
Then
Kill strTMPFile
End
If
ActiveWorkbook.SaveAs strTMPFile
ActiveWorkbook.Close
If
Not
objFSO.FolderExists(objFSO.GetParentFolderName(strFilePathSik))
Then
MkDir objFSO.GetParentFolderName(strFilePathSik)
End
If
If
objFSO.FileExists(strFilePathSik)
Then
Kill strFilePathSik
End
If
objFSO.MoveFile strFilePathOrig, strFilePathSik
objFSO.MoveFile strTMPFile, strFilePathOrig
Application.Workbooks.Open strFilePathOrig
FileSaveAs =
True
Else
ActiveWorkbook.Save
FileSaveAs =
True
End
If
Else
ActiveWorkbook.SaveAs varResult
FileSaveAs =
True
End
If
End
If
End
Function