Excel Änderungen protokollieren lassen

Bild

Betrifft: Excel Änderungen protokollieren lassen
von: Hoffi
Geschrieben am: 24.04.2015 18:17:19

Hallo liebe Excelgemeinde,
ich habe hier einen VBA Code entdeckt, der mir mein Tabellenblatt protokolliert.
Das macht er auch ganz gut....sofern die Daten einzeln eingegeben werden.
Wenn ich aber Daten aus mehreren Zellen kopiere und irgendwo einfüge, so lässt er einige Zellen aus dem Protokoll heraus.
Ein Beispiel: In den Zellen A1-A4 stehen Buchstaben/ Wörter, die ich markiere, kopiere und in B1-B4 einfüge. Im Protokoll selber wurden nur B1 und B4 ausgegeben. Das heißt: 2 Werte im Protokoll wurden ausgelassen, obwohl durch das Einfügen eine Änderung stattfand. Ersetze ich die Buchstaben / Wörter mit Zahlen, so funktioniert der Code bestens.
Hat irgend jemand eine Idee woran das liegen kann?
Option Explicit
Public varValue As Variant
Public strAddress As String
Dim mvntWert As Variant


Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
Dim intRow As Integer
For Each c In Target
    If c.Value <> varValue Or IsEmpty(c) Then
        With Worksheets("Protokoll")
            intRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1
            .Cells(intRow, 1).Value = Environ("Username")
            .Cells(intRow, 2).Value = Date
            .Cells(intRow, 3).Value = Time
            .Cells(intRow, 4).Value = c.Column
            .Cells(intRow, 7).Value = c.Row
            .Cells(intRow, 9).Value = c.Value
            .Cells(intRow, 8).Value = mvntWert
            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
mvntWert = Target.Value
End Sub

Bild

Betrifft: AW: Excel Änderungen protokollieren lassen
von: Luschi
Geschrieben am: 24.04.2015 18:54:47
Hallo Hoffi,
der Übergabeparamer für das markieren von Zellen ist 'Taget'.
mit: varValue = ActiveCell.Value
wird aber nur die erste markierte Zelle des Bereiches von 'Target' gespeichert.
Hier solte es schon so sein: varValue = Target.Value
Damit ist die Variable 'varValue' ein Array, das in einer For-Schleife abgeklappert werden muß.
Mach doch mal ein Beispiel, mit dem man testen kann.
Gruß von Luschi
aus klein-Paris

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Excel Änderungen protokollieren lassen"