Tabellenblatt kopieren und unter aktuellem Datum speichern
Schritt-für-Schritt-Anleitung
- Öffne die Excel-Datei, in der du das Makro verwenden möchtest.
- Drücke
ALT + F11
, um den VBA-Editor zu öffnen.
- Füge ein neues Modul hinzu:
- Klicke mit der rechten Maustaste auf „VBAProject (DeineDatei.xlsx)“.
- Wähle „Einfügen“ und dann „Modul“.
- Kopiere den folgenden VBA-Code in das Modul:
Function CheckTabellen(strName$, oWB As Workbook) As Boolean
On Error Resume Next
CheckTabellen = oWB.Sheets(strName).Index > 0
End Function
Sub test()
Dim oWB As Workbook
Dim i As Integer, booCopy As Boolean, booNichtOffen As Boolean
On Error Resume Next
'Datei offen?
Set oWB = Workbooks("Ziel.xls")
On Error GoTo 0
If oWB Is Nothing Then
'Datei nicht offen
Set oWB = Workbooks.Open("D:\Ordner\Ziel.xls")
booNichtOffen = True
End If
If CheckTabellen(CStr(Date), oWB) Then
If booNichtOffen Then oWB.Close False
MsgBox "Tabelle mit dem Namen '" & CStr(Date) & "' ist schon vorhanden!"
Exit Sub
End If
If Not oWB.ReadOnly Then
For i = 1 To oWB.Sheets.Count
If IsDate(oWB.Sheets(i).Name) Then
If Date > CDate(oWB.Sheets(i).Name) Then
ThisWorkbook.ActiveSheet.Copy After:=oWB.Sheets(i)
oWB.Sheets(i + 1).Name = Date
booCopy = True
Exit For
End If
End If
Next i
If Not booCopy Then
ThisWorkbook.ActiveSheet.Copy After:=oWB.Sheets(oWB.Sheets.Count)
oWB.Sheets(oWB.Sheets.Count).Name = Date
End If
If booNichtOffen Then
oWB.Close True
Else
oWB.Save
End If
MsgBox "Tabelle erfolgreich übertragen", vbInformation
Else
If booNichtOffen Then oWB.Close False
MsgBox "Ziel ist Schreibgeschützt!", vbCritical, "Fehler"
End If
End Sub
- Passe den Dateinamen und den Pfad im Code an deine Bedürfnisse an.
- Schließe den VBA-Editor und speichere deine Excel-Datei als Makro-aktivierte Datei (*.xlsm).
- Führe das Makro aus, um das aktuelle Tabellenblatt zu kopieren und unter dem aktuellen Datum zu speichern.
Häufige Fehler und Lösungen
Alternative Methoden
Wenn du keine VBA-Makros verwenden möchtest, kannst du das Blatt auch manuell kopieren und umbenennen:
- Klicke mit der rechten Maustaste auf das Tabellenblatt, das du kopieren möchtest.
- Wähle „Verschieben oder Kopieren“.
- Wähle die Zielarbeitsmappe aus oder erstelle eine neue.
- Aktiviere das Kontrollkästchen „Kopie erstellen“ und klicke auf „OK“.
- Benenne das kopierte Blatt manuell nach dem aktuellen Datum.
Praktische Beispiele
Wenn du das Makro erfolgreich ausgeführt hast, wirst du sehen, dass die neuen Tabellenblätter in aufsteigender Reihenfolge erstellt werden. Zum Beispiel:
- 01.02.2023
- 02.02.2023
- 03.02.2023
Jedes Mal, wenn du das Makro ausführst, wird das aktuelle Blatt unter dem heutigen Datum gespeichert.
Tipps für Profis
- Automatisierung: Du kannst das Makro so anpassen, dass es automatisch zu festgelegten Zeiten ausgeführt wird, indem du Aufgabenplanung oder Excel-Add-Ins verwendest.
- Dynamische Dateinamen: Verwende dynamische Variablen für Dateinamen und Pfade, um die Handhabung zu erleichtern.
- Fehlerprotokollierung: Implementiere eine Fehlerprotokollierung im Makro, um zu verfolgen, welche Blätter erfolgreich kopiert wurden und ob Fehler aufgetreten sind.
FAQ: Häufige Fragen
1. Wie kann ich das Makro anpassen, um zusätzliche Informationen zu speichern?
Du kannst weitere Variablen und Parameter im Makro hinzufügen, um Informationen wie Zeitstempel oder Notizen zu speichern.
2. Funktioniert das auch in Excel Online?
Die Verwendung von Makros ist in Excel Online nicht möglich. Du musst die Desktop-Version von Excel verwenden, um dieses Makro auszuführen.
3. Was passiert, wenn ich das Makro versehentlich lösche?
Du kannst das Makro jederzeit wiederherstellen, solange du eine Sicherungskopie deiner Excel-Datei hast. Ansonsten musst du den VBA-Code erneut eingeben.