Ich möchte ein Blatt so filtern, dass nur Zeilen mit Zellen angezeigt werden, die mit der Funktion „Änderungen nachverfolgen“ zur Überprüfung markiert sind. Weiß jemand, ob/wie das möglich ist?
Antwort1
Der unten geschriebene Code hebt jede Änderung und jeden neuen Eintrag im aktiven Blatt hervor und erstellt ein Protokollblatt, das den Blattnamen, die Zellenadresse und die eingegebenen Daten enthält.
Es ist wie ein Prüfblatt.
Das Hervorheben neuer Einträge funktioniert wie Mark Track Changes
und das Verschieben von Daten in die Protokolldatei wieFilter those entries
Sie können diesen Code auch für weitere Zwecke ändern.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ws As Worksheet, ws2 As Worksheet
Dim i As Boolean
Application.ScreenUpdating = False
i = False
For Each ws In ThisWorkbook.Worksheets
If ws.Name = "Change Log" Then
i = True
Exit For
End If
Next ws
If Not i Then
Set ws2 = ThisWorkbook.Worksheets.Add
ws2.Name = "Change Log"
ws2.Range("A1") = "Sheet"
ws2.Range("B1") = "Range"
ws2.Range("C1") = "New Data"
Else
Set ws2 = Sheets("Change Log")
End If
ws2.Range("A1").Offset(ws2.UsedRange.Rows.Count, 0) = Target.Worksheet.Name
ws2.Range("B1").Offset(ws2.UsedRange.Rows.Count - 1, 0) = Target.Address
ws2.Range("C1").Offset(ws2.UsedRange.Rows.Count - 1, 0) = Target.Cells.Value
Target.Font.Color = 255
Application.ScreenUpdating = True
End Sub