Re: automatisierte History für Zelländerungen
27.05.2003 11:59:59
Mike E.
Hallo Chris,hierzu ein Beispiel aus der Recherche, geschieben von Martin Beck:
Public varValue As Variant
Public strAddress As String
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
Dim intRow As Integer
Dim intDate As Long
For Each c In Target
If c.Value <> varValue Then
With Worksheets("Protokoll")
intRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1
.Cells(intRow, 1).Value = c.Row
.Cells(intRow, 2).Value = c.Column
.Cells(intRow, 3).Value = c.Value
varValue = CStr(c.Value)
End With
End If
Next
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
varValue = ActiveCell.Value
strAddress = ActiveCell.Address
End Sub
Dieses Beispiel stellt im Sheet "Protokoll" in Spalte A die Zeile der veränderten Zelle, in Spalte B die Spalte sowie in C den neuen Wert zur Verfügung.
Um nachvollziehen zu können, wie die Werte vorher aussahen, würde ich in die AutoOpen-Eigenschaft des Workbooks noch einen Code einbauen, der nach Öfnen der Datei ein Blatt mit dem Namen Historie o.ä. anlegt und die Mappe einfach dorthin kopiert:
Private Sub Workbook_Open()
Sheets("DeineDaten").Cells.Select
Selection.Copy Destination:=Sheets("Historie").Cells(1, 1)
End Sub
Viele Grüße
Mike