Willkommen

Pivottabelle

Spezialfilter

Formeln

Zellformate

Bedingte Formate

Gültigkeit

Programmierung

UDF - Funktionen

Tipps & Tricks

Webabfrage

Fehlersuche

Farbindex

Shortcuts

Limitationen

Downloads

Links

Kontakt

Disclaimer

Impressum

Zelländerungen protokollieren
In einem Formular sollen alle manuellen Zelländerungen protokolliert werden. Folgende Informationen könnten beispielsweise erfasst werden:
 
1. Zelladresse - Welcher Zellwert wurde geändert
2. Alter Zellwert
3. Neuer Zellwert
4. Geändert von Benutzer
5. Geändert am Datum/Uhrzeit
 
Dieses fiktive Sheet soll als Beispiel dienen. Mehrere Benutzer tragen manuell Werte in die gelb markierten Zellen ein. Wer hat wann welchen Wert geändert? Ein Vorteil, wenn man nachsehen kann, falls es zwischen Usern Unstimmigkeiten gibt.
 
Eingabe
 ABCDE
1Ein fiktives Eingabeformular   10.02.2010
2     
3     
4     
5     
6Messwert Station119,6 Messwert Station112,1
7Messwert Station213,1 Messwert Station28,4
8Messwert Station325,9 Messwert Station319,2
 
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  
 
Neben dem Formular, hier Eingabe genannt, gibt es noch ein zusätzlichen Tabellenblatt mit dem Namen "Info". Dieses kann auf Wunsch über den Menüpunkt - Format - Blatt - ausblenden, auch ausgeblendet werden.
Der Benutzername ist der Anmeldename unter Windows.
 
Info
 ABCDE
1ZelladresseAlter ZellwertNeuer ZellwertGeändert vonÄnderungsdatum / Zeit
2B612,519,6JHennekes10.02.2010 22:11
3B81125,9JHennekes10.02.2010 22:12
4E67,312,1JHennekes10.02.2010 22:12
5     
6     
 
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  
 
Dieser Code muss in das Modul des Tabellenblatts ( siehe auch Code aus Forum- Beispiel 2 ) Eingabe, also das Formular.
 
Option Explicit
Dim mvntWert As Variant
 
Private Sub Worksheet_Change(ByVal Target As Range)
'Code für das Modul: "Tabellenblatt"
'*********************************
'Autor: Jürgen Hennekes
'*********************************
Dim wks As Worksheet
Dim lngLast As Long
 
Set wks = Worksheets("Info")
lngLast = wks.Range("A65536").End(xlUp).Row + 1
 
If Target.Count > 1 Then Exit Sub
If Intersect(Range("B6:B8,E6:E8"), Target) Is Nothing Then Exit Sub
 
With wks
    .Range("A" & lngLast).Value = Target.Address(0, 0)
    .Range("B" & lngLast).Value = mvntWert
    .Range("C" & lngLast).Value = Target.Value
    .Range("D" & lngLast).Value = VBA.Environ("Username")
    .Range("E" & lngLast).Value = Now
End With
End Sub
 
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Intersect(Range("B6:B8,E6:E8"), Target) Is Nothing Then Exit Sub
mvntWert = Target.Value
End Sub