Hallo,
... Fehlbedienung (-:
also nochmal:
bitte teste mal folgenden Code:
Const myPath = "y:\kalkulation\"
Sub SaveFile()
Dim myForm As XlFileFormat
Dim sFileName As String
myForm = IIf(ActiveWorkbook.HasVBProject, xlOpenXMLWorkbookMacroEnabled, xlWorkbookNormal)
If Not CheckValide(Tabelle1.Cells(1, 5).Value, 5) Then
Tabelle1.Activate
Tabelle1.Cells(1, 5).Select
MsgBox "Bitte geben Sie eine 5-stellige Kundennummer ein.", vbCritical
Exit Sub
ElseIf CheckValide(Tabelle1.Cells(1, 3).Value, 8) Then
Tabelle1.Activate
Tabelle1.Cells(1, 3).Select
MsgBox "Bitte geben Sie die 8-stellige Pj-Nr ein.", vbCritical
Exit Sub
End If
Application.DisplayAlerts = False
sFileName = myPath & Tabelle1.Cells(1, 3) & "." & IIf(myForm = xlOpenXMLWorkbookMacroEnabled, "xlsm", "xlsx")
If LCase(ActiveWorkbook.FullName) = LCase(sFileName) Then
ActiveWorkbook.Save
Else
ActiveWorkbook.SaveAs Filename:=sFileName, FileFormat:=myForm
End If
Application.DisplayAlerts = True
End Sub
Function CheckValide(Value As String, iLength As Integer) As Boolean
CheckValide = False
If IsNumeric(Value) Then
If Len(CStr(Val(Value))) = iLength Then
CheckValide = True
End If
End If
End Function
Der zuvor eingestellte Code in "Diese Arbeitsmappe" muss gelöscht werden.
Der neue Code muss in ein neues Modul eingestellt werden.
Für ein Test kann man ein Button o.ä. erstellen, der diesen Befehl aufruft.
Die Ursache war nämlich, dass der Befehl "AciveWorkbook.SaveAs" fehl schlägt, wenn der Dateiname identisch mit dem bereits geöffneten ist.
LG, BigBen
|