Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Bei Änderung Datum in Nachbarzelle schreiben

Bei Änderung Datum in Nachbarzelle schreiben
07.01.2009 15:33:47
Georg
Hallo
wenn eine Zelle A2 geändert wird (durch Formelbezug nicht durch Handeingabe) dann soll in eine andere Zelle (C2) in der selben Zeile das aktuelle Datum geschrieben werden.
Dazu habe ich bereits was im Netz gefunden:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$2" Then ActiveSheet.Range("C2").Value = Date
End Sub


aber es passt leider nicht ganz, weil - wie gesagt - die Zelle A2 nicht händisch, sondern durch Formelbezug geändert wird. D. h. es müsste in dem VBA-Code etwas mit If Cell(A2).Change Then ... lauten
Kann man das vielleicht sogar so schreiben, dass es für alle Zeilen im Tabellenblatt gilt (also nicht nur A2 und C2, sondern A und C allgemein) und ich nicht jede Zeile extra codieren muss?
Grüße
Georg

Anzeige

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bei Änderung Datum in Nachbarzelle schreiben
07.01.2009 15:52:08
hary
Hallo Georg
versuch mal diesen Code

Private Sub Worksheet_Calculate()
ActiveSheet.Range("C2").Value = Date
End Sub


Gruss Hary

das wird aber dann immer ausgeführt oder ? oT
07.01.2009 15:54:50
Matthias
AW: ja,wenn sich ....
07.01.2009 16:04:00
hary
Hallo Matthias
...das Ergebniss einer Formel aendert. Eintragen in andere Zellen, wo keine Formeln zugreifen, kann ich doch ohne dass das Datum eingetragen wird. Oder?
Gruss Hary
Anzeige
und wenn er mal ne Formel braucht ?
07.01.2009 16:12:00
Matthias
Hallo Hary
Mir ist das schon klar was Du meintest. Der Gedanke ist ja auch eigentlich nicht verkehrt.
Aber wenn er irgendwann in einer anderen Zelle eine Formel neu eingibt (soll vorkommen ;o))
wird das Datum aktualisiert.
Gruß Matthias
AW: und wenn er mal ne Formel braucht ?
07.01.2009 16:18:59
Georg
ich kann es zwar nicht nachvollziehen wieso, aber der Tipp von Hary funktioniert, obwohl kein Bezug zu den Quellzellen vorhanden sind und eine If-Then-Bedingung auch nicht?
Aber so könnt es gehen.
P.S: Wie kann ich ein Bild hier im Beitrag einfügen, um die Sachen zu zeigen (die Datei ist sehr komplex zu hochladen)
Anzeige
AW: Bei Änderung Datum in Nachbarzelle schreiben
07.01.2009 15:56:37
Matthias
Hallo
beziehe dich doch auf die Quellzellen der Formel
Beispielin A2 steht =A1+5
dann beziehe Dich auf A1
Userbild
Gruß Matthias
AW: Bei Änderung Datum in Nachbarzelle schreiben
07.01.2009 16:02:00
Georg
Hallo Matthias,
das Problem ist, dass die Zelle durch Formelbezug aus mehreren (ingesamt drei) andern Zellen in der gleichen Zeile entsteht, das heißt es sollte das Datum geschrieben werden, wenn irgendeine dieser drei Zellen geändert wird. Daher dachte ich, es wäre einfacher, die Veränderung der Ergebniszelle (A2) als Bedingung zu verwenden.
Georg
Anzeige
dann frag die 3 Zellen ab...
07.01.2009 16:07:12
Matthias
Hallo
Du kannst doch alle 3 Zellen abfragen
Auf welche Zellen beziehst Du Dich denn in der Formel
mach doch bitte mal ein konkretes Beispiel
Gruß Matthias
AW: dann frag die 3 Zellen ab...
07.01.2009 16:38:32
Georg
Habe die Datei jetzt komprimiert.
https://www.herber.de/bbs/user/58170.xls
die roten Werte (Spalte G) soll bei Änderung der Blauen (Spalte D-F) automatisch mit dem Datum gefüllt werden.
Die Tabelle ist normalerweise sehr lang und über mehrere Blätter, das heißt eine Vereinfachung ohne jede Quellzelle oder jede Zeile sogar angeben zu müssen, wäre hilfreich.
Der Tipp von Hary funktiert leider doch nur für eine Zeile. Wenn ich den Code für weitere Zeilen kopiere, dann kommt ein Fehler beim Kompilieren.
Gruß
Georg
Anzeige
AW: dann frag die 3 Zellen ab...
07.01.2009 16:46:40
Knut
Hi,
das bekommst du nur mit dem Change-Ereignis hin!
mfg Knut
Falls Struktur für alle Blätter gleich,...
07.01.2009 16:50:00
RS
Diesen Code in DieseArbeitsmappe kopieren:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target.Column  6 Or Target.Row 


Grüsse RS

Anzeige
AW: dann frag die 3 Zellen ab...
07.01.2009 17:16:17
Georg
Hallo Matthias,
perfekt!
Vielen Dank!
Auch allen anderen, die bei der Lösung des Problems behilflich waren, herzlichen Dank!!!
Grüße
Georg
Anzeige
perfekt? v.a. bei neuen Zeilen! (owT)
07.01.2009 17:21:12
RS

ich habe mich auf sein Beispiel bezogen ! oT
07.01.2009 17:31:00
Matthias

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Datum automatisch aktualisieren bei Änderung in Excel


Schritt-für-Schritt-Anleitung

Wenn Du das aktuelle Datum in einer Zelle automatisch einfügen möchtest, sobald eine andere Zelle geändert wird, kannst Du dazu VBA (Visual Basic for Applications) verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne das Excel-Dokument.

  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Doppelklicke auf das Blatt, in dem Du das Datum automatisch aktualisieren möchtest.

  4. Füge den folgenden Code ein:

    Private Sub Worksheet_Change(ByVal Target As Range)
        If Not Intersect(Target, Me.Range("A:A")) Is Nothing Then
            Target.Offset(0, 2).Value = Date
        End If
    End Sub
  5. Schließe den VBA-Editor und kehre zu Excel zurück.

  6. Ändere eine Zelle in Spalte A, um zu sehen, wie in der benachbarten Zelle in Spalte C das aktuelle Datum eingetragen wird.

Dieser Code sorgt dafür, dass das Datum automatisch aktualisiert wird, wenn eine Zelle in Spalte A geändert wird.


Häufige Fehler und Lösungen

  • Fehler: "Komplilierungsfehler"

    • Lösung: Überprüfe, ob Du den Code im richtigen Modul (Arbeitsblattmodul) eingefügt hast.
  • Problem: Datum wird nicht aktualisiert

    • Lösung: Stelle sicher, dass die Zelle, die Du änderst, tatsächlich in Spalte A liegt und dass der Code korrekt eingefügt wurde.

Alternative Methoden

Eine andere Möglichkeit, das Datum automatisch einzufügen, ist die Verwendung des Worksheet_Calculate-Ereignisses, wenn Du möchtest, dass das Datum aktualisiert wird, sobald sich die Berechnung eines Bezuges ändert:

Private Sub Worksheet_Calculate()
    Dim rng As Range
    Set rng = Me.Range("A:A")
    If Application.WorksheetFunction.CountA(rng) > 0 Then
        Me.Range("C1").Value = Date
    End If
End Sub

Hier wird das Datum aktualisiert, wenn eine Berechnung auf dem Blatt erfolgt.


Praktische Beispiele

Angenommen, Du hast folgende Werte:

  • Zelle A1: =B1 + C1
  • Zelle B1: 5
  • Zelle C1: 10

Wenn Du den Wert in Zelle B1 änderst, wird in Zelle C1 das aktuelle Datum eingetragen, sobald die Berechnung in A1 erfolgt.


Tipps für Profis

  • Verwende Named Ranges: Anstatt feste Zellreferenzen zu verwenden, kannst Du benannte Bereiche verwenden, um Deinen Code flexibler zu gestalten.

  • Automatisierung: Kombiniere mehrere VBA-Skripte, um komplexe Automatisierungen zu erstellen, die Datumsangaben und andere Berechnungen gleichzeitig aktualisieren.

  • Arbeite mit Zeitstempeln: Wenn Du einen Zeitstempel anstelle eines Datums benötigst, kannst Du das Now-Funktion verwenden: Target.Offset(0, 2).Value = Now.


FAQ: Häufige Fragen

1. Wie kann ich das Datum automatisch einfügen, wenn eine Zelle ausgefüllt wird? Du kannst das Worksheet_Change-Ereignis verwenden, um das Datum einzufügen, sobald eine Zelle in einem bestimmten Bereich ausgefüllt wird.

2. Funktioniert das auch in anderen Excel-Versionen? Ja, die VBA-Skripte sind in den meisten modernen Excel-Versionen (z.B. Excel 2016, Excel 2019, Excel 365) kompatibel. Achte jedoch darauf, dass Makros aktiviert sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige