der nachfolgende Code funktioniert. (ist hier im Forum entstanden).
Der Code ist im großen und ganzen eine Protokollierung.
Wenn ich den Code in andere Dateien kopiere (Diese Arbeitsmappe) funktioniert er und in einer anderen Datei funktioniert er nicht.
Funkioniert nicht heisst: es wird nichts protokolliert.
Ich kann es an nichts festmachen. Die Dateien sind alle gleich aufgebaut. Haben die gleichen Tabellenbezeichnungen. Haben alle die gleichen Namen definiert. usw...
Vielleicht hat jemand eine Idee dazu.
Vorab vielen Dank
Gruß
Stefan
Der Code:
Dim AlterWert
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
AlterWert = Target.Value
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Sh.Name = "Protokoll" Then Exit Sub
If Sh.Name = "PT" Then Exit Sub
Application.EnableEvents = False
If Not Intersect(Target, Sh.Range("A1:DD1000")) Is Nothing Then
If Target.Cells.CountLarge > 1 Then
Application.Undo
MsgBox "Es darf nur eine Zelle geändert werden."
Else
protokolliere Sh.Name, Target.Address(0, 0), Target.Value, AlterWert, Target.EntireRow.Cells([DplKltxt].Column)
End If
End If
Application.EnableEvents = True
End Sub
Private Sub protokolliere(Blatt, Zelle, NeuerWert, AlterWert, Optional Sonstiges = "")
Dim AppEE As Boolean
AppEE = Application.EnableEvents
Application.EnableEvents = False
With Sheets("Protokoll").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).EntireRow
.Cells(1) = Blatt
.Cells(2) = Zelle
.Cells(3) = NeuerWert
.Cells(4) = AlterWert
.Cells(5) = Date
.Cells(6) = Time
.Cells(7) = Environ("username")
.Cells(8) = Sonstiges
End With
Application.EnableEvents = AppEE
End Sub