Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
580to584
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
580to584
580to584
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Datum bei Zellwertänderung

Datum bei Zellwertänderung
09.03.2005 13:30:54
Harald
Hallo Forum,
da sich die Recherche bei mir nach 1 Sekunde ausblendet (warum auch immer),
komm ich nur per neuem Beitrag weiter.
Mit unten stehendem Code (Danke Hajo) wird in Spalte C das Datum eingetragen, sobald in Spalte D eine Eingabe erfolgt. Das funktioniert nicht, wenn in Spalte D ein Formelergebnis steht (z.B. =Tabelle2!AJ16) und dort eine Änderung erfolgt.

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim RaBereich As Range, RaZelle As Range
Set RaBereich = Range("D:D")
Application.EnableEvents = False
For Each RaZelle In Range(Target.Address)
If Not Intersect(RaZelle, RaBereich) Is Nothing Then RaZelle.Offset(0, -1) = Date
Next RaZelle
Application.EnableEvents = True
Set RaBereich = Nothing
End Sub

Es soll also in Spalte C das Datum eingetragen werden, sobald sich der Wert in D ändert. Egal wie der Wert dort geändert wird.
Ich weiß, es steht in der Recherche. Aber wie gesagt...1 Sekunde...und wech.
Vielen Dank schonmal für Tipps
Harald

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datum bei Zellwertänderung
09.03.2005 14:07:50
Matthias
Hallo Harald,
du kannst auch mit Google suchen, indem du dort z.B. eingibst:
Änderung protokollieren site:www.herber.de
Aber zum Thema:
du musst das Worksheet_Calculate-Ereignis nutzen, welches aber kein Argument hat (wie das Change-Ereignis "Target"). Das heißt, man weiß erstmal nicht, welcher Wert sich geändert hat.
Eine Möglichkeit ist, eine Kopie der Werte von Spalte D in einer Hilfsspalte zu halten, und bei jeder Neuberechnung zu überprüfen, ob der Wert von der Kopie abweicht. Wenn ja, wird die Zeit (Datum) in Spalte C aktualisiert und die Hilfsspalte mit dem neuen Wert beschrieben:
Private Sub Worksheet_Calculate()
Const HS = 1
Dim z As Range
For Each z In Intersect(Range("D:D"), ActiveSheet.UsedRange)
If z.Value <> z.Offset(0, HS).Value Then 'Vergleich mit Kopie
'Wert hat sich geändert:
z.Offset(0, -1).Value = Now()
z.Offset(0, HS).Value = z.Value 'Kopie aktualisieren
End If
Next z
End Sub
Die Konstante HS ist der Abstand der Hilfsspalte zur Spalte D nach rechts. d.h. bei 1 ist es Spalte E, bei 3 Spalte G, bei -2 Spalte B.
Gruß Matthias
Anzeige
AW: Datum bei Zellwertänderung
09.03.2005 14:35:11
Harald
Hallo Matthias,
das ist ja prima, läuft soweit und bringt mich auf einen zweiten Ansatz.
Diese Formelergebnisse die bei Änderung das Datum benötigen, stehen grundsätzlich in D2:D15 im Blatt 1 (als Ergebnis einer Tabelle auf Blatt 2)
Ab D16 (Blatt1) abwärts wird nur noch manuell eingetragen, somit könnte ich den intersect-Bereich für das Selection_Change Ereignis ändern (D16:D350) und deine Lösung für den Bereich D2:D15 anpassen.
Statt der Hilfsspalte könnte ich doch den Abgleich direkt über die Ergebnispalte in Tabelle 2 (AJ2:AJ15) durchführen.
Da stosse ich dann wieder auf mein Syntaxproblem. ;-/
Wie auch immer. Da ich gleich wieder Feierabend habe, werd ich diesen Ansatz morgen weiterverfolgen (vielleicht mit einem hilfreichen Tipp von dir).
Selbst wenn es für dieses Projekt nicht zur Anwendung kommt, da dein Calculate-Ereignis schon seinen Dienst tut, habe ich noch gaaanz viele Anwendungsmöglichkeiten hier.
Vielen Dank auf alle Fälle für die Super-Hilfe
Harald
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige