AW: Automatische Backup Datei
14.01.2016 16:59:51
Imran
Super, danke erstmal für den Code.
Beim schließen der Datei bekomme ich allerdings den "Mehrdeutiger Name: Workbook_Open" Fehler.
Soweit ich weiß entsteht der, weil nur ein "Workbook-Open" existieren darf.
Das ist der Code, den ich in MeineArbeitsmappe habe:
Option Explicit
Private avntOldValues As Variant
Private Sub Workbook_Open()
Call ReadValues
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Call ReadValues
End Sub
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Call ReadValues
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim lngFirstFreeRow As Long
Dim rngCell As Range, rngRange As Range
If Sh.Name "Protokoll" Then
Set rngRange = Intersect(Target, Sh.Range("A1:AP2000"))
If Not rngRange Is Nothing Then
'Ereignisbehandlung ausschalten:
Application.EnableEvents = False
With Worksheets("Protokoll")
lngFirstFreeRow = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
For Each rngCell In rngRange
If rngCell.Value avntOldValues(rngCell.Row, rngCell.Column) Then
If avntOldValues(rngCell.Row, rngCell.Column) "[PlatzhalterMakro - _
NichtBeachten]" Then
.Cells(lngFirstFreeRow, 1).Value = Sh.Name
.Cells(lngFirstFreeRow, 2).Value = rngCell.Address(False, False)
.Cells(lngFirstFreeRow, 3).Value = rngCell.Value
.Cells(lngFirstFreeRow, 4).Value = avntOldValues(rngCell.Row, _
rngCell.Column)
.Cells(lngFirstFreeRow, 5).Value = Date
.Cells(lngFirstFreeRow, 6).Value = Time
.Cells(lngFirstFreeRow, 7).Value = Environ("USERNAME")
lngFirstFreeRow = lngFirstFreeRow + 1
End If
End If
Next
End With
Set rngRange = Nothing
'Ereignisbehandlung wieder einschalten:
Application.EnableEvents = True
End If
End If
End Sub
Private Sub ReadValues()
avntOldValues = ActiveSheet.Range("A1:AP2000").Value
End Sub
Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
StopTimer
End Sub
Private Sub Workbook_Open()
StartTimer
End Sub
Und ich bekomme einen Fehler beim kompilieren. Es soll wohl auf 64-Bit angepasst werden. Da wird mir dann die Function Zeile markiert.