Arbeitsblätter in einzelne Dateien aufteilen
Schritt-für-Schritt-Anleitung
Um Excel Tabellenblätter in einzelne Dateien zu speichern, kannst Du den folgenden VBA-Code verwenden. Dieser Code durchsucht alle Arbeitsblätter in der aktiven Excel-Datei und speichert sie je nach ihren Namen in separate Dateien:
Sub ArbeitsblaetterAufteilen()
Dim i As Integer, j As Integer, objWks As Object, strWks As String, arrWks
Dim strFolder As String, strSubFolder As String
strFolder = "C:\Temp\" ' Grundordner
Set objWks = CreateObject("scripting.dictionary")
Application.ScreenUpdating = False
For i = 1 To Worksheets.Count - 1
If Not objWks.exists(Worksheets(i).Name) Then
strWks = Worksheets(i).Name
objWks(Worksheets(1).Name) = 0
For j = i + 1 To Worksheets.Count
If Not objWks.exists(Worksheets(j).Name) Then
If Left(Worksheets(j).Name, 3) = Left(Worksheets(i).Name, 3) And _
Right(Worksheets(j).Name, 3) = Right(Worksheets(i).Name, 3) Then
strWks = strWks & "|" & Worksheets(j).Name
objWks(Worksheets(j).Name) = 0
End If
End If
Next
arrWks = Split(strWks, "|")
Worksheets(arrWks).Copy
strSubFolder = strFolder & Right(arrWks(0), 3) & "\" ' TGE oder ZJE anhängen
With ActiveWorkbook
If UBound(arrWks) > 0 Then
.SaveAs strSubFolder & Left(arrWks(0), 3) & " " & Right(arrWks(0), 3) & " ab " & Format(Date, "YYYYMMDD")
Else
.SaveAs strSubFolder & arrWks(0) & " ab " & Format(Date, "YYYYMMDD")
End If
.Close
End With
End If
Next
End Sub
Häufige Fehler und Lösungen
-
Kein Zielordner gefunden: Stelle sicher, dass der Zielordner (C:\Temp\
) existiert, bevor Du das Makro ausführst. Andernfalls wird ein Fehler ausgelöst.
-
Letztes Arbeitsblatt wird nicht gespeichert: Dies kann passieren, wenn das letzte Arbeitsblatt keinen passenden Namen hat. Überprüfe die Bedingungen im Code und stelle sicher, dass alle Blattnamen den Kriterien entsprechen.
-
Dateinamen enthalten Punkte: Vermeide Punkte in den Dateinamen, da dies mit der Dateierweiterung zu Problemen führen kann.
Alternative Methoden
Falls Du kein VBA verwenden möchtest, kannst Du auch manuell die Arbeitsblätter aufteilen:
-
Kopieren und Einfügen: Kopiere das Arbeitsblatt, das Du speichern möchtest, und füge es in eine neue Excel-Arbeitsmappe ein. Speichere diese dann unter dem gewünschten Namen.
-
Power Query: Nutze Power Query, um Daten zu importieren und zu transformieren. Du kannst damit auch Daten in separate Tabellen aufteilen und exportieren.
Praktische Beispiele
-
Beispiel für ein Arbeitsblatt: Angenommen, Du hast die Arbeitsblätter „211 TGE“, „225-00 TGE“ und „225-01, 02 TGE“. Der Code speichert „225-00 TGE“ und „225-01, 02 TGE“ in einer Datei namens „225 TGE ab YYYYMMDD.xlsx“, während „211 TGE“ in einer separaten Datei gespeichert wird.
-
Verwendung von Bedingungen: Du kannst den Code anpassen, um basierend auf spezifischen Kriterien, wie etwa dem Inhalt einer bestimmten Zelle, die Arbeitsblätter aufzuteilen.
Tipps für Profis
-
Verwende dynamische Pfade: Anstatt einen festen Pfad im Code zu verwenden, kannst Du den Benutzer auffordern, einen Zielordner auszuwählen.
-
Fehlerbehandlung: Implementiere eine Fehlerbehandlung im VBA-Code, um unerwartete Probleme zu vermeiden.
-
Makros automatisieren: Du kannst das Makro so einstellen, dass es regelmäßig ausgeführt wird, um die Excel Tabelle automatisch aufzuteilen und einzeln zu speichern.
FAQ: Häufige Fragen
1. Wie kann ich Excel Tabellenblätter in einzelne Dateien speichern?
Verwende den oben beschriebenen VBA-Code oder kopiere die Arbeitsblätter manuell in neue Dateien.
2. Was mache ich, wenn der Zielordner nicht existiert?
Stelle sicher, dass der Zielordner vor dem Ausführen des Makros vorhanden ist, oder passe den Code an, um den Ordner automatisch zu erstellen.
3. Kann ich auch mehrere Arbeitsblätter in einer Datei speichern?
Ja, der bereitgestellte VBA-Code ermöglicht es, mehrere Arbeitsblätter, die dieselben Kriterien erfüllen, in einer Datei zu speichern.
4. Wie verhindere ich, dass die Datei im falschen Format gespeichert wird?
Achte darauf, das richtige Dateiformat im SaveAs
-Befehl anzugeben, um sicherzustellen, dass die Dateien als .xlsx
gespeichert werden.
5. Kann ich den Code anpassen, um eine andere Logik zu verwenden?
Ja, der VBA-Code kann leicht angepasst werden, um verschiedene Kriterien für das Aufteilen und Speichern von Arbeitsblättern zu verwenden.