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