ich habe ein Problem zu dem ich einfach keine Lösung finde. Also:
Ich habe unter Excel97 eine Anwendung geschrieben, die rein über UserForms läuft. An einer Stelle ist nun ein Schalter, der ein Backup der Aktiven Datei machen soll. Unter 97 läuft es auch wunderbar. Nun soll das Ganze auch unter 2000 laufen.
DAS SPEICHERN funktioniert auch noch aber versuche ich danach in der Anwendung weiter zu machen (z. B. Schalter: frm_hilfe.Show) dann bekomme ich immer den Fehler:
Laufzeitfehler '75': Das angegebene Objekt konnte nicht gefunden werden.
Und beim Debuggen beim Öffnen einer beliebigen Komponente unter VBA: Fehler beim Zugriff auf Pfad/Datei.
Bei Excel97 funktionert das einwandfrei. Ich habe auch noch einen Workarround über FileCopy versucht. Aber da habe ich keine Möglichkeit gefunden die aktive, offene Exceldatei zu kopieren. Kann mir jemand helfen?? Hier noch der Code:
Private Sub cmd_haupt_backup_Click()
'On Error Resume Next
Dim dName As String
Dim xlsName As String
Dim aktDate As Date
Dim xlsLaenge As Long
aktDate = Date
aktDate = Format(aktDate, "dd mm yyyy")
xlsName = ActiveWorkbook.Name
xlsLaenge = Len(xlsName) - 4
dName = Left(xlsName, xlsLaenge) & "_" & Left(aktDate, 2) & _
"_" & Mid(aktDate, 4, 2) & "_" & Right(aktDate, 2) & ".xls"
Dim strSaveName As String
'Gibt den zu speichernden Dateinamen samt Pfad zurück ohne
' wirklich zu speichern
strSaveName = Application.GetSaveAsFilename _
(dName, "Microsoft Excel-Arbeitsmappe (*.xls),*.xls")
Dim strTest As String
'Dir gibt Dateinamen zurück, wenn er gefunden wird - sonst leer
Dim strSource As String
strSource = ActiveWorkbook.FullName
strTest = Dir(strSaveName)
If strSaveName <> "False" And strSaveName <> "Falsch" Then
If strTest <> "" Then
Beep
If MsgBox("Datei besteht schon, überspeichern?", _
vbYesNo + vbQuestion) = vbNo Then Exit Sub
End If
' FileCopy strSource, strSaveName
ActiveWorkbook.SaveCopyAs strSaveName
End If
End Sub