Excel Tabelle aufteilen und einzeln sichern
Schritt-für-Schritt-Anleitung
Um eine Excel-Tabelle in mehrere Dateien aufzuteilen und sie einzeln zu speichern, kannst du folgendes VBA-Makro verwenden. Stelle sicher, dass du die Datei im richtigen Format speicherst, abhängig von deiner Excel-Version. Hier ist eine Schritt-für-Schritt-Anleitung:
- Öffne Excel und drücke
ALT + F11
, um den VBA-Editor zu öffnen.
- Klicke auf
Einfügen
> Modul
, um ein neues Modul zu erstellen.
-
Kopiere und füge den folgenden Code in das Modul ein:
Sub IndikatorenExportieren()
Dim dicIdentNo As Object
Dim strIdentNo As String
Dim arrIdentNo As Variant
Dim lngLastRow As Long, i As Long
Set dicIdentNo = CreateObject("Scripting.Dictionary")
'AutoFilter in Spalte A einrichten
Columns("A:A").AutoFilter
If Not ActiveSheet.AutoFilterMode Then
Columns("A:A").AutoFilter
End If
'Letzte Zeile ermitteln
lngLastRow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
'Alle Indikatoren ermitteln
With dicIdentNo
For i = 2 To lngLastRow
strIdentNo = Trim(Cells(i, 1).Text)
If Not .Exists(strIdentNo) Then
.Add strIdentNo, 0
End If
Next i
'Alle Indikatoren in Array übertragen
arrIdentNo = .keys
'Jeden Indikator filtern und in neuer Arbeitsmappe speichern
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
For i = 0 To .Count - 1
Selection.AutoFilter Field:=1, Criteria1:=arrIdentNo(i)
Cells.SpecialCells(xlCellTypeVisible).Copy
Workbooks.Add
ActiveSheet.Paste
Selection.Columns.AutoFit
Range("A1").Select
With ActiveWorkbook
.SaveAs ThisWorkbook.Path & "/" & arrIdentNo(i) & ".xlsx"
.Close
End With
Next
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End With
End Sub
- Schließe den VBA-Editor und gehe zurück zu Excel.
- Führe das Makro aus, indem du
ALT + F8
drückst, das Makro auswählst und auf Ausführen
klickst.
Häufige Fehler und Lösungen
-
Fehler 400: Wenn du diesen Fehler erhältst, könnte das daran liegen, dass das Makro nicht in der richtigen Excel-Version ausgeführt wird. Stelle sicher, dass du den korrekten Dateiformat-Code verwendest. Für .xls
verwende:
.SaveAs ThisWorkbook.Path & "/" & arrIdentNo(i) & ".xls"
Für .xlsx
:
.SaveAs ThisWorkbook.Path & "/" & arrIdentNo(i) & ".xlsx", FileFormat:=51
-
Dateien werden nicht gespeichert: Überprüfe, ob der Pfad, in dem die Dateien gespeichert werden sollen, korrekt ist. Ersetze ThisWorkbook.Path
durch den gewünschten Pfad.
Alternative Methoden
Wenn du keine VBA-Makros verwenden möchtest, kannst du die Excel-Tabelle auch manuell aufteilen:
- Filtere die Daten nach dem gewünschten Kriterium.
- Kopiere die gefilterten Daten in eine neue Excel-Datei.
- Speichere jede Datei einzeln.
Diese Methode ist jedoch zeitaufwändiger, besonders bei großen Datenmengen.
Praktische Beispiele
Angenommen, du hast eine Excel-Tabelle mit Kundendaten, die du nach Regionen aufteilen möchtest. Du kannst das oben genannte Makro verwenden, um Daten für jede Region in separate Dateien zu exportieren. Jedes Arbeitsblatt wird automatisch mit dem entsprechenden Regionsnamen gespeichert.
Tipps für Profis
- Nutze die
AutoFilter
-Funktion, um deine Excel-Tabelle nach verschiedenen Kriterien effizient aufzuteilen.
- Automatisiere den Speichervorgang, indem du den Speicherort im Makro vordefinierst.
- Teste das Makro zuerst mit einer kleinen Datenmenge, um sicherzustellen, dass alles wie gewünscht funktioniert.
FAQ: Häufige Fragen
1. Kann ich das Makro in jeder Excel-Version verwenden?
Das Makro wurde in Excel 2003 geschrieben, funktioniert aber auch in neueren Versionen, solange das .xls oder .xlsx Format unterstützt wird.
2. Wie kann ich das Makro anpassen, um andere Spalten zu verwenden?
Ändere einfach die Spaltenbezüge im VBA-Code. Zum Beispiel, wenn du Spalte B statt A verwenden möchtest, ändere Columns("A:A")
zu Columns("B:B")
.
3. Was mache ich, wenn ich mehr als 65.536 Zeilen habe?
In diesem Fall solltest du sicherstellen, dass du das .xlsx
Format verwendest, da dies mehr Zeilen unterstützt als das .xls
Format.
4. Wie kann ich sicherstellen, dass die Daten korrekt gespeichert werden?
Führe das Makro immer in einer Testumgebung mit einer Kopie deiner Daten aus, bevor du es auf die vollständige Datei anwendest.