
Ich versuche, eine Excel-Vorlage zu erstellen, die drei Felder enthält, die beim Öffnen automatisch aktualisiert werden sollen.
Felder, die diese Vorlage enthalten wird
- Aktuelles Datum: 02.07.2012
- Blattnummer: 25
- Zwischen Datum: 02/07/2012 bis 02/08/2012
Wenn ich diese Vorlage nach dem 03/08/2012 öffne, enthält dieses Blatt neue Daten
- Aktuelles Datum: 08.03.2012
- Blattnummer: 26
- Zwischen Datum: 03/08/2012 bis 02/09/2012
Für das aktuelle Datum
Private Sub Workbook_Open()
ThisWorkbook.Worksheets("Sheet1").Range("A1").Value = Date
End Sub
Kann dies mithilfe einer Excel-Funktion erfolgen oder muss ich VB verwenden? Und wie aktualisiere ich die Vorlage automatisch mit neuen Werten, um beispielsweise beim nächsten Mal diese Daten zu verwenden?
Antwort1
Es gibt mehrere Möglichkeiten, dies zu erreichen.
Am einfachsten ist es, wenn davon ausgegangen wird, dass Start- und Enddatum übereinstimmen.
- Die "Zwischen"-Daten sollten in zwei Zellen stehen. Das "Start"-Datum wird auf den 2. des aktuellen Monats gesetzt
=DATE(YEAR( NOW() ), MONTH( NOW() ), 2)
, das "End"-Datum auf den 2. des aktuellen Monats +1=DATE(YEAR( NOW() ), MONTH( NOW() ) +1, 2)
- Das „aktuelle“ Datum wird dann einfach auf das „Start“-Datum gesetzt.
Sie müssen diese Daten jedoch „korrigieren“, wenn die Tabelle gespeichert wird. Angenommen, das „aktuelle“ Datum befindet sich in Zelle B3 und die beiden dazwischen liegenden Daten in den Zellen . Sie können etwas wie Folgendes verwenden:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Range("B3").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues
Range("B5:C5").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues
End Sub
Im ThisWorkbook
Codemodul. Dadurch werden einfach Werte in die Zellen kopiert und eingefügt, sodass die Formel durch die Daten ersetzt wird.
Hoppla, eine Ergänzung ist noch erforderlich. Der von mir angegebene Code ist etwas zu simpel, da Sie die Vorlage nicht speichern können. Sie müssen den angegebenen Code also in etwas einschließen, das verhindert, dass er beim Bearbeiten der Vorlage selbst ausgelöst wird. Der einfachste Weg ist möglicherweise, eine Namenskonvention für die Dateien zu verwenden. Vielleicht hat die Vorlage den Text „VORLAGE“ am Anfang des Dateinamens.