Das Folgende einschließen Ereignismakro im Arbeitsblattcodebereich:
Private Sub Worksheet_Activate()
Dim N As Long, r As Range, rng As Range
Dim d As Date
N = Cells(Rows.Count, "G").End(xlUp).Row
Set rng = Range("G3:G" & N)
For Each r In rng
If IsDate(r.Value) Then
d = r.Value
If d < Date Then
r.Value = DateSerial(Year(d) + 1, Month(d), Day(d))
End If
End If
Next r
End Sub
Bei jeder Aktivierung des Arbeitsblatts durchsucht das Makro alle Daten in der Spalte G beginne am G3 . Wenn das Datum "veraltet" ist, wird das Datum um ein Jahr vorgezogen.
Da es sich um Arbeitsblattcode handelt, ist die Installation sehr einfach und die Verwendung automatisch:
- Klicken Sie mit der rechten Maustaste auf den Registerkartennamen am unteren Rand des Excel-Fensters
- Wählen Sie Code anzeigen. Dadurch wird ein VBE-Fenster geöffnet
- Fügen Sie das Material ein und schließen Sie das VBE-Fenster
Wenn Sie Bedenken haben, versuchen Sie es zunächst auf einem Testarbeitsblatt.
Wenn Sie die Arbeitsmappe speichern, wird das Makro mit dieser gespeichert.
Wenn Sie eine Excel-Version später als 2003 verwenden, müssen Sie diese speichern
die Datei als .xlsm anstatt als .xlsx
So entfernen Sie das Makro:
- Öffnen Sie die VBE-Fenster wie oben
- Löschen Sie den Code
- Schließen Sie das VBE-Fenster
Weitere Informationen zu Makros im Allgemeinen finden Sie unter:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
und
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
Weitere Informationen zu Ereignismakros (Arbeitsblattcode) finden Sie unter:
http://www.mvps.org/dmcritchie/excel/event.htm
Makros müssen aktiviert sein, damit dies funktioniert!
G3
sollte arbeiten:=IF(F3<TODAY(),DATE(YEAR(F3)+1,MONTH(F3),DAY(F3)),F3)
.