online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon JonesM vom 18.03.2022, 10:05 Options

Private Sub Workbook_beforeClose & Excel 2007

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


Antwort schreiben

Antwort 1 von Hajo_Zi vom 18.03.2022, 12:16 Options

Hallo Thomas,

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

Gruß Hajo

Antwort 2 von JonesM vom 22.03.2022, 17:04 Options

Hallo Hajo,

funzt,

vielen Dank!

Thomas

Antwort 3 von JonesM vom 22.03.2022, 17:53 Options

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

Antwort 4 von Hajo_Zi vom 22.03.2022, 17:58 Options

Hallo Thomas,

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

Gruß Hajo

Antwort 5 von JonesM vom 22.03.2022, 18:21 Options

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.

Antwort 6 von Hajo_Zi vom 22.03.2022, 18:26 Options

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

Antwort 7 von JonesM vom 22.03.2022, 18:45 Options

Sorry wenn ich dich konfus gemacht habe. Ich werde noch ein wenig probieren. Hast mir aber trotzdem geholfen, vielen Dank!

Viele Grüßé
Thomas

Ähnliche Themen

Excel 2007
kfk  29.12.2008 - 28 Hits - 1 Antwort

Excel 2007 Änderungen in Excel-Optionen speichern
kati2  27.01.2010 - 345 Hits - 5 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 20:06:00 2026