Tabellenblätter in Excel mehrfach kopieren und anpassen
Schritt-für-Schritt-Anleitung
Um ein Excel Tabellenblatt mehrfach zu kopieren und automatisch nach Namen zu benennen, kannst Du den folgenden VBA-Code verwenden. Dieser Code kopiert das Arbeitsblatt "Vorlage" und benennt es anhand der Namen in der "Mitarbeiterliste".
- Öffne Excel und drücke
ALT + F11
, um den VBA-Editor zu öffnen.
- Füge ein neues Modul hinzu:
- Klicke auf
Einfügen > Modul
.
- Kopiere den folgenden Code in das Modul:
Sub makeSheets()
Dim objTemplate As Worksheet
Dim rng As Range
Dim strName As String
On Error GoTo ErrExit
Set objTemplate = Sheets("Vorlage")
For Each rng In Sheets("Mitarbeiterliste").Range("A1:A29")
If Len(Trim$(rng.Text)) > 0 Then
strName = Left(Trim$(rng.Text), 31) ' Namen auf 31 Zeichen begrenzen
If Not SheetExist(strName) Then
objTemplate.Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
With ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
.Name = strName
.Range("A1").Value = strName ' Namen in Zelle A1 einfügen
End With
End If
End If
Next
ErrExit:
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
End Sub
Private Function SheetExist(sheetName As String, Optional Wb As Workbook) As Boolean
Dim wks As Worksheet
On Error GoTo ERRORHANDLER
If Wb Is Nothing Then Set Wb = ThisWorkbook
For Each wks In Wb.Sheets
If LCase(wks.Name) = LCase(sheetName) Then SheetExist = True: Exit Function
Next
ERRORHANDLER:
SheetExist = False
End Function
- Schließe den VBA-Editor und gehe zurück zu Excel.
- Führe das Makro aus:
- Drücke
ALT + F8
, wähle makeSheets
aus und klicke auf Ausführen
.
Häufige Fehler und Lösungen
-
Fehler: „Blatt existiert bereits“
- Wenn Du das Makro mehrmals ausführst, könnte es zu diesem Fehler kommen. Der Code überprüft bereits, ob das Blatt existiert, bevor es kopiert wird.
-
Fehler: „Blattname ungültig“
- Excel erlaubt keine Blattnamen mit mehr als 31 Zeichen oder bestimmten Sonderzeichen. Der Code begrenzt den Namen auf 31 Zeichen.
-
Problem: Das kopierte Blatt ist nicht geschützt
- Wenn Du ein geschütztes Blatt möchtest, füge im Code nach dem Kopieren den Schutz hinzu:
.Protect "dein_passwort"
Alternative Methoden
-
Manuelles Kopieren:
- Du kannst ein Blatt manuell kopieren, indem Du mit der rechten Maustaste auf den Reiter des Blattes klickst und
Kopieren
wählst.
-
Excel-Funktionen:
- Du kannst auch die Funktion
=INDIREKT()
verwenden, um Daten aus mehreren Tabellenblättern in ein Hauptblatt zu konsolidieren.
Praktische Beispiele
Tipps für Profis
- Variablen benennen: Eine klare Benennung von Variablen im Code macht die Wartung einfacher.
- Fehlerbehandlung: Implementiere umfassende Fehlerbehandlungsroutinen, um unerwartete Probleme zu vermeiden.
- Dokumentation: Kommentiere Deinen Code gut, damit Du und andere ihn später leichter verstehen können.
FAQ: Häufige Fragen
1. Wie kann ich das Arbeitsblatt duplizieren, ohne VBA zu verwenden?
Es ist nicht möglich, ein Arbeitsblatt mit Namen automatisch zu duplizieren, ohne VBA zu nutzen. Du kannst jedoch manuell Kopien erstellen.
2. Was mache ich, wenn der Code nicht funktioniert?
Überprüfe die Namen der Blätter im Code und stelle sicher, dass sie mit denen in Deiner Excel-Datei übereinstimmen. Achte auch darauf, dass das Makro in einer Datei mit Makros gespeichert ist (*.xlsm).
3. Wie kann ich mehrere Tabellenblätter auf einmal kopieren?
Verwende den oben genannten Code oder kopiere die Blätter manuell, indem Du die Steuerungstaste gedrückt hältst und die gewünschten Blätter auswählst, dann mit der rechten Maustaste klickst und Kopieren
wählst.