2.5k Aufrufe
Gefragt in Tabellenkalkulation von jonesm Mitglied (191 Punkte)
Hallo,

wir haben umgestellt auf Excel 2007 und jetzt läuft mein Makro zum Erstellen einer Sicherheitskopie nicht mehr.

Die Datei habe ich gespeichert als Execl-Arbeitsmappe mit Makros (*.xlsm). Makros sind zugelassen.

Kann mir jemand sagen, woran das liegt?



Private Sub Workbook_BeforeClose(Cancel As Boolean)
Sheets("Lagerbestand aktuell").Select
On Error Resume Next
Application.OnTime EarliestTime:=VaEt, Procedure:="Zeitmakro", Schedule:=False
ActiveSheet.Outline.ShowLevels RowLevels:=0, ColumnLevels:=1

ActiveWorkbook.Save
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:= _
"V:\Backup\Kopie BL " & Format(Now, "YYYY-MM-DD"), FileFormat:=xlNormal _
, Password:="", WriteResPassword:="sicher", ReadOnlyRecommended:=False, _
CreateBackup:=False
If Application.Workbooks.Count <= 2 Then
Application.Quit
Else
ActiveWorkbook.Close
End If
End Sub



Vielen DAnk und Grüße
Thomas

7 Antworten

0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
Hallo Thomas,

versuche es nach dem Prinzip
ActiveWorkbook.SaveAs Filename:=strDesktopPath & StDateiname, FileFormat:=xlOpenXMLWorkbookMacroEnabled :="", WriteResPassword:="sicher"

Gruß Hajo
0 Punkte
Beantwortet von jonesm Mitglied (191 Punkte)
Hallo Hajo,

funzt,

vielen Dank!

Thomas
0 Punkte
Beantwortet von jonesm Mitglied (191 Punkte)
Hallo Hajo,

zu früh gefreut. Die Sicherheitskopie wird nur angelegt, wenn ich die Datei selbst schließe. Wenn über das Zeitmakro (kennst du villeicht :-)))) )geschlossen wird, wird keine Sicherheitskopie angelegt.

Hast du hier noch ein Tipp?


Option Explicit
Public VaEt As Variant
Public DaZeit As Date

Sub Zeitmakro()
'**************************************************
'* H. Ziplies *
'* 18.02.04 *
'* erstellt von Hajo.Ziplies@web.de *
'* http://home.media-n.de/ziplies/ *
'* *
'**************************************************
ThisWorkbook.Worksheets("Lagerbestand aktuell").Range("a1") = ThisWorkbook.Worksheets("Lagerbestand aktuell").Range("a1") - CDate("00:00:01")
If ThisWorkbook.Worksheets("Lagerbestand aktuell").Range("a1") <> 0 Then
VaEt = Now + TimeValue("00:00:01")
Application.OnTime VaEt, "Zeitmakro"
Else
ThisWorkbook.Close True 'speichern
' Meldung bei Excel immer in Vordergrund
' Dim mldg
' mldg = MsgBox("Endzeit erreicht", 1048576, "Endzeit")
' 1048576 entspricht vbMsgBoxRtlReading
End If
Application.WindowState = xlMaximized
ActiveWindow.WindowState = xlMaximized
End Sub



Viele Grüße
Thomas
0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
Hallo Thomas,

Deine Zeile mußt Du vor
ThisWorkbook.Close True 'speichern
einfügen.

Gruß Hajo
0 Punkte
Beantwortet von jonesm Mitglied (191 Punkte)
Hallo,

komme nicht ganz mit....

Das Zeitmakro läuft unter "Modul", der Rest unter "DieseArbeitsmappe":

Option Explicit

Private Sub Workbook_Open()
DaZeit = "0:10:00"
ThisWorkbook.Worksheets("Lagerbestand aktuell").Range("a1") = CDate(DaZeit)
Zeitmakro
End Sub

Private Sub workbook_beforeclose(cancel As Boolean)
Sheets("Lagerbestand aktuell").Select
On Error Resume Next
Application.OnTime EarliestTime:=VaEt, Procedure:="Zeitmakro", Schedule:=False
ActiveSheet.Outline.ShowLevels RowLevels:=0, ColumnLevels:=1


ActiveWorkbook.Save
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:= _
"V:\Backup\Kopie BL " & Format(Now, "YYYY-MM-DD ") & Format(Now, "HH") & " Uhr", FileFormat:=xlOpenXMLWorkbookMacroEnabled _
, Password:="", WriteResPassword:="sicher", ReadOnlyRecommended:=False, _
CreateBackup:=False
If Application.Workbooks.Count <= 2 Then
Application.Quit
Else
ActiveWorkbook.Close
End If
End Sub

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
ThisWorkbook.Worksheets("Lagerbestand aktuell").Range("a1") = DaZeit
End Sub



Was muss ich jetzt umstellen?

Vielen Dank.
0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
Hallo Thomas,

ich komm auch nicht mehr klar und wähle den Beitrag darum ab.Vor welche Zeile was geschrieben werden soll hatte ich geswchrieben. Meine Antworten beziehen sich immr auf demn letzten Beitrag.
Was Deine Zeile isz sollte klar sein, ansonsten schaue im ersten Beitrag und meinen Anpasung im zweiten Beitrag, da hattest Du ja schon geschrieben das es geht.

Gruß Hajo
0 Punkte
Beantwortet von jonesm Mitglied (191 Punkte)
Sorry wenn ich dich konfus gemacht habe. Ich werde noch ein wenig probieren. Hast mir aber trotzdem geholfen, vielen Dank!

Viele Grüßé
Thomas
...