Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema InputBox
BildScreenshot zu InputBox InputBox-Seite mit Beispielarbeitsmappe aufrufen

Änderungsverfolgung - Änderungszelle bestimmen

Betrifft: Änderungsverfolgung - Änderungszelle bestimmen von: Showd0wn
Geschrieben am: 12.08.2014 11:36:46

Hallo,

Ich versuche ein Makro zu schreiben, dass, wenn ein Wert in einer bestimmten Spalte geändert wird, das ganze protokolliert. Mein Problem liegt bei der Zelle, in der der Wert geändet wird. Diese spreche ich einfach über Activecell.row an, aber das funktioniert nicht, da die Änderung erst erkannt wird, wenn die Zelle verlassen wird. Ändere ich den Zellenwert und bestätige das mit Enter, bin ich beispielsweise eine Zeile zu tief, mit Tab würde es zB passen.
Hier eine vereinfachte Version des Codes

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 10 Then 
        iZeile = ActiveCell.Row
        Call Aenderungshistorie 
    End If
End Sub
Sub Aenderungshistorie ()
.Cells(x, 11) = Date 'Änderungsdatum
.Cells(x, 12) = InputBox("Beschreibung") 'Beschreibung der Änderung
.Cells(x, 13) = aWerteAlt(iZeile) 'Wert alt
.Cells(x, 14) = .Cells(iZeile, 10) 'Wert neu
.Cells(x, 15) = Application.UserName 'Änderung durchgeführt von
End Sub
Gruß

  

Betrifft: AW: Änderungsverfolgung - Änderungszelle bestimmen von: Tino
Geschrieben am: 12.08.2014 12:13:35

Hallo,
die Zelle oder Zellen die geändert werden sind in Target enthalten.
Beachte bei Änderung in mehreren Zeilen/Spalten bekommst Du so nur jeweils die erste Zeile/Spalte!

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 10 Then 
        iZeile = Target.Row
        Call Aenderungshistorie 
    End If
End Sub
Gruß Tino


  

Betrifft: AW: Änderungsverfolgung - Änderungszelle bestimmen von: Showd0wn
Geschrieben am: 12.08.2014 13:13:01

oh, na klar. vielen Dank


 

Beiträge aus den Excel-Beispielen zum Thema "Änderungsverfolgung - Änderungszelle bestimmen"