VBA Makro einmal am Tag ausführen
Schritt-für-Schritt-Anleitung
-
Datum in eine Zelle schreiben: Wähle eine Zelle in deinem Arbeitsblatt, um das Datum der letzten Ausführung des Makros zu speichern, beispielsweise Zelle A1.
-
Makro anpassen: Ändere dein bestehendes Makro, um beim Öffnen zu überprüfen, ob das Datum in der Zelle mit dem aktuellen Datum übereinstimmt. Hier ist ein Beispiel, wie der Code aussehen könnte:
Private Sub Workbook_Open()
Dim SavePath As String
Dim FileName As String
Dim FileExtension As String
Dim FileDate As String
Dim FileBackupName As String
Dim LastBackupDate As Date
Dim TodayDate As Date
' Set paths and filenames
SavePath = "C:\Users\sosautt\Desktop\AV-Sheets\"
FileName = Left(ThisWorkbook.Name, InStrRev(ThisWorkbook.Name, ".") - 1)
FileExtension = Mid(ThisWorkbook.Name, InStrRev(ThisWorkbook.Name, ".") + 1)
' Get today’s date
TodayDate = Date
' Check last backup date
If IsEmpty(Range("A1").Value) Then
LastBackupDate = Date - 1 ' Set to yesterday if empty
Else
LastBackupDate = Range("A1").Value
End If
' Backup only if today’s date is different from last backup date
If LastBackupDate <> TodayDate Then
FileDate = Format(Now, "YYYYmmdd_hhmmss")
FileBackupName = SavePath & FileName & "_" & FileDate & "." & FileExtension
ActiveWorkbook.SaveCopyAs FileBackupName
Range("A1").Value = TodayDate ' Update the last backup date
End If
End Sub
-
Makro speichern: Speichere deine Datei als Excel-Arbeitsmappe mit Makros (z.B. .xlsm).
Häufige Fehler und Lösungen
-
Fehler: Makro wird nicht ausgeführt
Lösung: Stelle sicher, dass die Makros in Excel aktiviert sind. Gehe zu Datei > Optionen > Sicherheitscenter > Einstellungen für das Sicherheitscenter > Einstellungen für Makros und aktiviere die Makros.
-
Fehler: Backup wird täglich erstellt
Lösung: Überprüfe, ob das Datum in der Zelle korrekt aktualisiert wird. Achte darauf, dass die Zelle für das Datum nicht manuell geändert wird.
Alternative Methoden
Eine alternative Methode, um ein Makro einmal am Tag auszuführen, ist die Verwendung des Windows Taskplaners. Du kannst eine Batch-Datei erstellen, die Excel mit der entsprechenden Datei öffnet und das Makro ausführt. Dies erfordert jedoch zusätzliche Kenntnisse im Umgang mit dem Taskplaner.
Praktische Beispiele
Ein praktisches Beispiel könnte sein, dass du das Makro für eine wöchentliche Sicherung deiner Finanzdaten verwendest. Du kannst das Datum in einer Zelle festhalten und sicherstellen, dass das Makro nur einmal pro Woche ausgeführt wird, indem du den obigen Code entsprechend anpasst.
Tipps für Profis
-
Verwende eine benannte Zelle: Anstatt eine feste Zelle zu verwenden, kannst du eine benannte Zelle für das Datum einrichten. Das macht den Code flexibler und einfacher zu warten.
-
Fehlerprotokollierung einbauen: Implementiere eine einfache Fehlerprotokollierung, um Probleme beim Ausführen des Backups zu erkennen. Zum Beispiel könntest du den Fehler in einer anderen Zelle oder einer Protokolldatei speichern.
FAQ: Häufige Fragen
1. Wie kann ich das Makro manuell ausführen?
Du kannst das Makro manuell ausführen, indem du das VBA-Editor-Fenster öffnest (Alt + F11), das gewünschte Makro auswählst und auf "Ausführen" klickst.
2. Was passiert, wenn Excel geschlossen wird, bevor das Makro läuft?
Das Makro wird nicht ausgeführt, wenn Excel nicht geöffnet ist. Es wird nur beim Öffnen der Datei ausgeführt. Um sicherzustellen, dass die Sicherung täglich erfolgt, sollte die Datei jeden Tag geöffnet werden.