Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1960to1964
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Tabelle auf mehrere Registerkarte aufteilen

Tabelle auf mehrere Registerkarte aufteilen
18.01.2024 15:31:24
Tine74
Hallo liebe Excel-Gemeinde,

Normalerweise versuche ich mir meine Makros aus verschiedenen Beiträgen "zusammenzusetzen" aber leider hab ich bisher nichts passendes gefunden ;-(

Ich habe folgendes Problem

Datenbasis ist ein Datenbankexport Sheet "export"
In Spalte A stehen die Werte "0" und "1"

Die "0" steht für eine übergeordnete Nummer und die darunterliegenden Zeilen mit "1" für die zu diesem Teil zugehörigen Nummern ähnlich einer Gruppierung.
Danach folgt die nächste "0" plus die zugehörigen "1"er Zeilen usw....das ganze als lange Liste

Die Aufgabenstellung ist nun, dass ich die Zeilen welche eine"0" enthalten inkl. der darunterliegenden Zeilen die eine "1" enthalten (bis zur nächsten "0") und der Spaltenüberschrift in ein neues Registerblatt derselben Datei kopieren möchte - dabei soll dann das Registerblatt mit der Nummer (Sachnummer) der entsprechenden "0" Zeile benannt werden.

Die Anzahl der Zeilen mit Wert "1" kann variieren womit kein fixer Auswahlbereich (Selektion anhand Anzahl Zeilen) definiert werden kann.

Auch die Anzahl der übergeordneten Nummern mit "0" ist nicht immer identisch. Das Makro sollte also immer bis zum Ende der Tabelle durchlaufen, und den Bereich von "0" bis zur nächsten "0"-1 Zeile kopieren.

In der Beispieldatei habe ich versucht das ganze mal zu veranschaulichen. https://www.herber.de/bbs/user/166189.xlsx

Hoffe ich konnte mein Problem anschaulich beschreiben, und Ihr habt mir hier eine Lösung
Danke Euch schonmal vorab

Gruß
Tine74

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: nachgefragt ...
18.01.2024 15:43:40
neopa C
Hallo Tine74,

... in Deiner Beispieldatei, wären 2 Tabellenblätter zu erzeugen. Im Original sicher mehr, oder? Sind später immer die gleiche Hauptsachnummern zu trennen? Dann könnte ich Dir auch anstelle einer VBA-Lösung eine einfache Power Query (PQ) Lösung aufzeigen. Mehr zu PQ sieh z.B. mal hier: https://excelhero.de/power-query/power-query-ganz-einfach-erklaert/

Gruß Werner
.. , - ...
AW: Tabelle auf mehrere Registerkarte aufteilen
19.01.2024 20:19:15
daniel
Hi
probiers mal so:

Sub test()

Dim i As Long

Dim Stufe1 As Range
Dim Stufe0 As Range


With Sheets("Export").Columns(1)
.Replace 0, False, xlWhole
Set Stufe0 = .SpecialCells(xlCellTypeConstants, 4)
Set Stufe1 = .SpecialCells(xlCellTypeConstants, 1)
.Replace False, 0
End With

For i = 1 To Stufe1.Areas.Count
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = Stufe0.Areas(i).Cells(1, 3).Value
Sheets("Export").Rows(1).Copy ActiveSheet.Cells(1, 1)
Stufe0.Areas(i).Resize(, 4).Copy ActiveSheet.Cells(2, 1)
Stufe1.Areas(i).Resize(, 4).Copy ActiveSheet.Cells(3, 1)
Next
End Sub

zur Info: wenn du einen Zellbereich hast, der aus mehreren Blöcken (Block = rechteckiger, lückenloser Zellbereich, also sowas wie A1:C3) zusammengesetzt ist, dann sind die Areas eines Bereichs diese einzelnen Blöcke.

Gruß Daniel
Anzeige
AW: Tabelle auf mehrere Registerkarte aufteilen
22.01.2024 08:37:27
Tine74
Hi Daniel,

SUPER!!!
das ist genau das was ich gesucht habe.
Ich konnte nun das Makro noch auf meine Realliste anpassen noch Formatierung, Autofit, Autofilter etc. hinzufügen und es klappt hervorragend!

vielen lieben Dank für Deine Hilfe.

Gruß
Tanja

PS: Ganz großes Lob an das Forum - konnte mir hier schon mehr als einen Code "mopsen" ;-)
AW: nachgefragt ...
19.01.2024 07:33:27
Tine74
Hallo Werner,

wie Du richtig vermutest ist die Anzahl der Hauptsachnummern sind tatsächlich in real deutlich mehr :-)
Auch ist die Benennung/Nummer der Hauptsachnummern nicht immer sie selbe. Das einzige was immer da ist ist die Spalte mit Stufe "0" und "1".

Power Query hatte ich versucht, aber irgendwie sind mir das die Ideen wie ich das umsetzten kann ausgegangen - Daher die Idee ob man das mit einem Makro lösen kann.
Wenn Du mir für PQ einen Tip hast wäre das auch super.

Gruß
Tanja
Anzeige
AW: nachgefragt ...
19.01.2024 19:59:25
Jan
Hallo

Daten mit PQ bearbeiten und direkt als Pivot ausgeben.
Grundsätzlich ist das aufteilen auf mehrere Register ein sehr schlechtes vorgehen.
AW: nun ...
22.01.2024 13:04:21
neopa C
Hallo Tanja,

... aus Deiner Antwort kann ich entnehmen, daß für Dich VBA wahrscheinlich die effektivere Lösungsvariante wäre. Dies weil Du ja nicht nur zwei Hauptsachnummern hast, die Du zudem in Registerkarten gleichen Namens abspeichern möchtest. Mit VBA beschäftige ich mich allerdings nicht.

Mit PQ kann man das sicherlich zwar auch komplett realisieren, aber da braucht man schon sehr gute M-Code Kenntnisse. Ich kenne mich lediglich mit der Standard PQ- Funktionalität etwas aus. Für Deine Zielstellung braucht man für viele Hauptsachnummern dann dadurch etwas mehr "händischen" Aufwand.

Damit könnte man es z.B. so realisieren:
- Lies Deine "export"-Daten in den PQ-Editor ein.
- füge eine benutzerdef. Spalte z.B. mit folgender Formel ein: = Table.AddColumn(#"Geänderter Typ", "Haupt_SachNr", each if [Stufe] = 0 then [Sachnummer] else null)
- danach folgender Schritt: = Table.FillDown(#"Hinzugefügte benutzerdefinierte Spalte",{"Haupt_SachNr"})
- dann filtere die neue Spalte "Haupt_SachNr" nach der ersten (hier die 100)
- dann speichere dies in ein neues Tabellenblatt ab und benenne dieses entsprechend.
- Dupliziere danach die PQ-Abfrage und ändere da die Filterung von 100 auf 200 ab und speichere dies in ein neues Tabellenblatt namens 200
- usw.

Gruß Werner
.. , - ...
Anzeige
AW: nun...
22.01.2024 15:45:55
Tine74
Hallo Werner,

Danke für die Rückmeldung.
Ja, die Makrovariante zum Aufteilen der Nummern ist für mich der gangbarste Weg.

Hab allerdings, weil ich noch Duplikate in meiner Exportliste hatte, zuerst meinen Export mit PQ aufbereitet und im
Anschluss, über diese neue Datenbasis dann das Makro laufen lassen.

Für mich die perfekte Symbiose aus beidem. :-)

hab hier mal mein Endergebnis hochgeladen. https://www.herber.de/bbs/user/166258.xlsm

Gruß
Tanja
AW: danke für Deine Rückmeldung owT
22.01.2024 15:53:12
neopa C
Gruß Werner
.. , - ...

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige