Microsoft Excel

Herbers Excel/VBA-Archiv

automatisches Speichern - Fehlermeldung

Betrifft: automatisches Speichern - Fehlermeldung von: Tobiax
Geschrieben am: 04.03.2013 09:16:06

Guten Morgen!

Ich habe eine Datei, die automatisch ein Backup anlegt, sobald gespeichert wird.
Wenn ich in der Datei nun etwas ändere und Excel über das X rechts oben schliesse, dann kommt ja immer die Meldung "Sollen Ihre Änderungen in [...] gespeichert werden?"
Wenn ich jetzt auf speichern klicke, dann kommt sofort eine Fehlermeldung aus Visual Basic:

Laufzeitfehler '5':
Ungültiger Prozeduraufruf oder ungültiges Argument
Ich kann den Fehler leider nicht finden. Hat jemand eine Idee?

Tobiax...

Hier das passende Makro (mit Hilfe hier aus dem Forum), welches unter "DieseArbeitsmappe steht.:
Private Const strPfadArchiv As String = "C:\Archiv\"

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
 Dim sDName As String
 Application.DisplayAlerts = False
 sDName = Format(Now(), "YYYY-MM-DD hh_mm_ss ")
 sDName = sDName & VBA.Left(ActiveWorkbook.Name, Application.WorksheetFunction.Find(".", _
 ActiveWorkbook.Name) - 1)
 sDName = sDName & " " & Environ("Username")
 sDName = sDName & VBA.Mid(ActiveWorkbook.Name, Application.WorksheetFunction.Find(".", _
 ActiveWorkbook.Name), 99)
 Me.SaveCopyAs strPfadArchiv & sDName
 Application.DisplayAlerts = True
 Sheets("Übersicht").Select
 Range("A1").Select
End Sub

  

Betrifft: AW: automatisches Speichern - Fehlermeldung von: fcs
Geschrieben am: 04.03.2013 11:39:40

Hallo Tobiax,

du verwendest die falsche Funktion zur Suche der Position des Punktes im Dateinamen.
Verwende nicht
Application.WorksheetFunction.Find
sondern
VBA.InStrRev


Gruß
Franz


  

Betrifft: AW: automatisches Speichern - Fehlermeldung von: Tobiax
Geschrieben am: 04.03.2013 13:36:56

Hallo!

Danke für die Antwort, aber so klappt das gar nicht.
Kannst du mir die Zeile mal neu schreiben?

 sDName = sDName & VBA.Left(ActiveWorkbook.Name, VBA.InStrRev(".", _
 ActiveWorkbook.Name) - 1)
Tobiax ...


  

Betrifft: AW: automatisches Speichern - Fehlermeldung von: fcs
Geschrieben am: 04.03.2013 13:58:17

Hallo Tobiax,

die Parameter müssen auch noch getauscht werden.

Gruß
Franz

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Dim sDName As String
    Application.DisplayAlerts = False
    sDName = Format(Now(), "YYYY-MM-DD hh_mm_ss ")
    sDName = sDName & VBA.Left(ActiveWorkbook.Name, VBA.InStrRev(ActiveWorkbook.Name, ".") - 1)
    sDName = sDName & " " & Environ("Username")
    sDName = sDName & VBA.Mid(ActiveWorkbook.Name, VBA.InStrRev(ActiveWorkbook.Name, "."), 99)
    Me.SaveCopyAs strPfadArchiv & sDName
    Application.DisplayAlerts = True
    Sheets("Übersicht").Select
    Range("A1").Select
End Sub



  

Betrifft: AW: automatisches Speichern - Fehlermeldung von: Tobiax
Geschrieben am: 04.03.2013 14:56:36

DANKE !!!


  

Betrifft: AW: automatisches Speichern - Fehlermeldung von: Matze Matthias
Geschrieben am: 04.03.2013 11:44:54

Hallo Tobiax,
du kannst auch das "Rote Kreuz" deaktiveren, aber das verhindert deine Fehler nicht.

Private Sub Workbook_BeforeClose(Cancel As Boolean) 
Cancel = True 
'dein Code
End Sub
Matze


 

Beiträge aus den Excel-Beispielen zum Thema "automatisches Speichern - Fehlermeldung"