Daten auf mehrere Blätter verteilen
Schritt-für-Schritt-Anleitung
Um eine Excel-Tabelle in mehrere Tabellenblätter zu verteilen, kannst du ein Makro verwenden, das die Daten nach Kreditornummern filtert und in neue Blätter kopiert. Hier ist eine einfache Schritt-für-Schritt-Anleitung:
-
Öffne dein Excel-Dokument und drücke ALT + F11, um den VBA-Editor zu öffnen.
-
Füge ein neues Modul hinzu:
- Klicke mit der rechten Maustaste auf "VBAProject (dein Dokument)".
- Wähle "Einfügen" > "Modul".
-
Kopiere und füge den folgenden Code ein:
Sub Filter_copieren()
On Error GoTo Fehler
Dim TB1, TB2, TB3
Dim SP%, ZE&, LR&, i%, j%, FI$
Dim stCalc%
'*** bescheunigt das Makro
With Application
.ScreenUpdating = False
stCalc = .Calculation
.Calculation = xlCalculationManual
End With
Set TB1 = Sheets("Alle")
SP = 10 'Spalte J mit Kreditor
ZE = 2 'ab Zeile
Sheets.Add After:=Sheets(Sheets.Count)
Set TB2 = ActiveSheet 'Temp
With TB1
If .FilterMode Then .ShowAllData ' Autofilter alle
.Columns(SP).Copy TB2.Cells(1, SP)
TB2.Columns(SP).RemoveDuplicates Columns:=1, Header:=xlYes
LR = TB2.Cells(Rows.Count, SP).End(xlUp).Row 'letzte Zeile der Spalte
For i = ZE To LR
FI = TB2.Cells(i, SP)
Application.DisplayAlerts = False
Sheets(FI).Delete 'Blatt löschen, wenn schon da
Application.DisplayAlerts = True
Sheets.Add After:=Sheets(Sheets.Count)
Set TB3 = ActiveSheet
TB3.Name = FI
.Range("$A:$AJ").AutoFilter Field:=SP, Criteria1:=FI
.UsedRange.Copy TB3.Cells(1, 1)
Next
Application.DisplayAlerts = False
TB2.Delete
Application.DisplayAlerts = True
.ShowAllData
End With
'*** Fehlerbehandlung
Err.Clear
Fehler:
If Err.Number <> 0 Then MsgBox "Fehler: " & Err.Number & vbLf & Err.Description: Err.Clear
'*** Rücksetzen
With Application
.ScreenUpdating = True
.DisplayAlerts = True
If .Calculation <> stCalc Then .Calculation = stCalc
End With
End Sub
-
Schließe den VBA-Editor und kehre zu Excel zurück.
-
Führe das Makro aus:
- Drücke
ALT + F8, wähle Filter_copieren und klicke auf "Ausführen".
Häufige Fehler und Lösungen
-
Fehler 9: Index außerhalb des gültigen Bereichs: Dieser Fehler tritt häufig auf, wenn das Makro versucht, ein Blatt umzubenennen, das bereits existiert. Stelle sicher, dass alle Kreditornummern eindeutig sind oder passe den Code an, um bestehende Blätter zu löschen.
-
Keine Daten werden kopiert: Überprüfe, ob in der Spalte J tatsächlich Werte vorhanden sind. Möglicherweise sind leere Zellen oder Duplikate im Weg.
Alternative Methoden
Eine alternative Möglichkeit, die Excel-Daten auf mehrere Tabellenblätter zu verteilen, ist die Verwendung von Pivot-Tabellen. Du kannst die Kreditornummer im Seitenfeld der Pivot-Tabelle platzieren, um die Daten zu aggregieren und analysieren.
Um mehrere Arbeitsblätter mit einer Pivot-Tabelle zu erstellen, kannst du die Daten nach Bedarf filtern und auf verschiedene Blätter verteilen.
Praktische Beispiele
Angenommen, du hast eine Tabelle mit folgenden Daten in Spalte J:
| Kreditornummer |
Name |
| 123 |
Max |
| 456 |
Anna |
| 123 |
Tom |
Nach dem Ausführen des Makros wird für die Kreditorennummer 123 ein neues Blatt erstellt, das alle Zeilen mit dieser Kreditorennummer enthält. Das gleiche gilt für 456.
Tipps für Profis
-
Verwende Variablen für Spaltenzahlen: Statt feste Werte wie 10 (für Spalte J) zu verwenden, kannst du den Code anpassen, um die Spalte dynamisch zu bestimmen. So bleibt dein Makro flexibler.
-
Fehlerbehandlung: Implementiere eine ausgefeilte Fehlerbehandlung, um das Makro robuster zu machen. Dies kann insbesondere bei großen Datenmengen hilfreich sein.
FAQ: Häufige Fragen
1. Muss ich etwas an der Excel-Version ändern?
Ja, einige Funktionen können je nach Excel-Version variieren. Stelle sicher, dass du eine Version verwendest, die Makros unterstützt (z.B. Excel 2010 oder höher).
2. Kann ich das Makro anpassen, um andere Spalten zu verwenden?
Ja, ändere einfach die Variable SP, um die gewünschte Spalte zu wählen, aus der die Daten gefiltert werden sollen.
3. Wie kann ich sicherstellen, dass alle Blätter gleich formatiert sind?
Du kannst die Formatierung im Makro nach dem Kopieren der Daten auf das neue Blatt hinzufügen, um sicherzustellen, dass alle Blätter ein einheitliches Layout haben.