Wie kann ich eine Excel Tabelle automatisch auf mehrere Blätter aufteillen?

3 Antworten

Ok, ich gehe jetzt mal davon aus das deine Tabelle in Zeile 1 eine Überschrift hat und diese und die nächsten 25000 in eine neue Datei abgelegt werden soll.

Sobald diese neue Datei dann erstellt ist, wird sie in einem von dir festgelegten Ordner abgelegt. Den Namen der Datei habe ich jetzt so eingebaut das du ihn über eine Inputbox selbst anlegen kannst. Ich dachte jetzt an sowas wie 1-25000, 25001-50000 usw.

Diese neue Datei wird wenn sie erstellt wurde auch gleich dort abgespeichert und geschlossen.

Bevor du das in deiner Original Datei einbaust, würde ich dir raten immer erst eine Sicherung von dieser zu erstellen und den Code vorher in der Kopie zu testen,

Das folgende Modul baust du bitte wie folgt in deine Kopie ein:

ALT+F11 und dann im linken Abschnitt mit der rechten Maustaste "Datei importieren"

Dort wird dann dieses Modul eingefügt, welches du hier findest:

http://workupload.com/file/7XUaZwb

Wenn du dich mit dem einfügen von Modulen auskennst kannst du auch den folgenden Code kopieren und einfügen.

Das Modul sieht wie folgt aus:

Beschreibung steht Fett dahinter, Fett und Kusiv musst du anpassen.

Sub teilen()

Rows("1:25001").Select ' Hier wird jetzt Zeile 1 bis 25001 gewählt
Selection.Copy 'schneidet die markierten Zeilen aus
Workbooks.Add 'Erstellt eine neue Arbeitsmappe
ActiveSheet.Paste 'Fügt die ausgeschnittenen Zeilen in die neue Arbeitsmappe ein
Range("A1").Select 'markiert die Zelle A1

'Ab jetzt kommt der Teil wo die neu erstellte Arbeitsmappe gespeichert wird
Dim strVerzeichnis As String
Dim strName As String
Dim strInbox As String
strName = InputBox("Bitte Namen eingeben") 'Da wird nachher im Makro der Name abgefragt wie die Datei heißen soll
strVerzeichnis = "C:\Users\Mimi\Desktop\Teilen\" 'Hier musst du dein Verzeichnis anlegen
ActiveWorkbook.SaveAs strVerzeichnis & strName & ".xlsx", _
FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
ActiveWindow.Close 'Schließt die neu erstellte Arbeitsmappe

Windows("Teilen_automatisch.xlsm").Activate 'Anpassen auf deine Original Datei
Rows("2:25001").Select 'Hier wird jetzt Zeile 2-25001 gelöscht, die Überschrift bleibt stehen
Selection.Delete Shift:=xlUp 'Hier werden die jetzt übertragenen 25000 Zeilen im Original entfernt
Range("A1").Select 'markiert die Zelle A1
End Sub

Falls du das ganze zum anschauen brauchst habe ich hier eine Musterdatei mit 100000 Zeilen zum testen.

http://workupload.com/file/6ft5f7G

Falls du nicht damit klar kommst immer raus damit.

Nachtrag:

Das Makro kannst du mit ALT+F8 oder über den Reiter Ansicht und da auf Makros ausführen.

Du kannst dir aber auch einfach eine kleine Form oder ein Button in die erste Zeile einbauen und das mit dem Makro belegen.

0
@schmiddi1967

Wenn man vom Lustgewinn beim Ausarbeiten eines Makros mal absieht: Es war sicher mehr Arbeit, das Makro auszuarbeiten (für Dich) und es zu installieren und zu testen (für Frager), als Aus der Datei 16x je einen Block mit 25000 Zeilen in je eine Neue Datei einzukopieren und ebensooft abzuspeichern. ;▬⌯((

ich bin sehr für Arbeitsersparnis, aber bei Dingen, die nicht allzu aufwändig sind, arbeite ich selbst meist lieber zu Fuß...

1
@Iamiam

Ich gehe eigentlich bei solchen Fragen immer davon aus, dass diese Suche dann öfter mal gebraucht wird.

Wenn nur einmalig ist wenigstens eine passende Antwort für jemanden da der das gleiche mal brauchen sollte.

Ja und vom Lustgewinn mal ganz abgesehen :)))))

1

Wenn es eine einmalige Aktion ist, würde ich das ehrlich gesagt von Hand machen. Es geht auch per Makro, dann sind allerdings einige Fragen zu klären:

Was genau soll kopiert werden, d.h. Zeilen sind klar, aber welche Spalten? Nur die Inhalte oder auch Formatierungen?

Sind es genau 400000 Zeilen bzw. was ist, wenn die Zahl nicht glatt durch 25000 teilbar ist? Auf die letzte Seite dazupackèn oder eine neue anfangen?

Ist die Datenquelle das erste Tabellenblatt? Sind die weiteren Tabellenblätter schon angelegt oder soll das auch im Makro passieren?

 

Da habe ich Deine AW vorher nicht gelesen, bin aber zu dem gleichen Urteil gekommen! (hab nur nochmal reingeschaut, weil ein anderer Kommentar (AW Tron) bewertet wurde, und hab dabei die AW mit Makro gesehen)

0

Hallo,

Excel 2010 verfügt über 1.048.576 Zeilen, da ist noch Spielraum.

Falls es sich um eine bessere, Datenbereichfindung handelt folgender Vorschlag.

Du kannst eine Zusatzspalte kreieren bzw. einfügen indem der Bereich angegeben wird, z. B. in Zelle A1 "1 - 25000" eingeben, dann Zellen A1 bis A25000 markieren, unter "Ausrichtung" - "Verbinden und zentrieren", desweiteren in Zelle A25001 "25001 - 50000" eingeben, dann Zellen A25001 bis A50000 markieren und wie zuvor beschrieben verbinden, etc.

Wenn jetzt in Spalte A mit dem Cursor navigiert wird, erfolgt der Sprung zum nächsten Bereich (von A1 zu A25001, usw.).

Ansonsten könnte man das ganze auch so lösen:

Zellen A1 bis A400000 durchnummerieren, dann unter "Start" - "Bearbeiten" - "Suchen und Auswählen" - "Suchen nach:" z. B. die Zahl 5000 eingeben, dann springt der Cursor zu A5000.

Gruß Tron

Der Cursor springt auch zu A5000, wenn man das in das Namenfeld (links neben der Bearbeitungszeile) eingibt!

Das Zellen-verbinden vorher kann man sich also sparen.

1

Hallo allerseits, ich möchte in Excel aus einer Tabelle bestimmte Zeilen herausfiltern und in einer zweiten Tabelle anzeigen, geht das ohne Makro?

Mittels "WAHL"-Funktion habe ich mir eine Excel-Tabelle angelegt.

  • in Spalte B sind Namen aufgelistet
  • in Spalte C sind, wenn vorhanden, Titel zu den Namen eingefügt (Chef, Stellvertreter etc.) Ist kein Titel vorhanden ist die Zelle leer.
  • in Spalte D sind Arbeitszeit aufgelistet (t für Tag, n für Nacht, wf für Wunschfrei etc.) Muss die Person nicht arbeiten, ist die Zelle leer.

Falls es erforderlich sein sollte, kann ich in Spalte A den Arbeitszeiten noch eine Zahl zuordnen (Für jedes t eine 1, für jedes n eine 2, für jedes wf eine 3 etc.)

Ich möchte jetzt zwei weitere Tabelle anlegen in welcher alle Zeilen, in denen keine Arbeit steht, rausfallen und die übrigen Zeilen sortiert in Tagesarbeit und Nachtarbeit aufgelistet werden.

Bildlich dargestellt soll das ganze wie folgt aussehen:

Vorher:

  • Spalte A / Spalte B / Spalte C / Spalte D
  • 2 / Horst / Chef / n
  • 1 / Holger / Stellv. / t
  • / Heinz / /
  • 2 / Erwin / / n
  • 1 / Fritz / / t
  • / Dieter / Fahrer /
  • 3 / Hans / / wf

Nachher in Tabelle 1:

  • Spalte A / Spalte B / Spalte C / Spalte D
  • 1 / Holger / Stellv. / t
  • 1 / Fritz / / t
  • 3 / Hans / / wf

Nachher in Tabelle 2:

  • Spalte A / Spalte B / Spalte C / Spalte D
  • 2 / Horst / Chef / n
  • 2 / Erwin / / n

Wie stelle ich dies an?

Die Autofilter-Funktion ist raus, weil es damit bei Veränderungen immer wieder neu eingestellt werden muss. Makros sind ebenfalls raus, weil die bei dem verwendeten Excel-Programm gesperrt sind.

Angemerkt sei noch, dass die reale Tabelle für ca. 30 Personen gedacht ist, dass es Tagsüber ca. 10 Buchstaben für unterschiedliche Arbeitszeiten gibt und dass es Nachts ca. 5 Buchstaben für unterschiedliche Arbeitszeiten gibt.

Ich bedanke mich schon mal für eure Mühe, Mit freundlichem Gruß, M.

...zur Frage

kann man zeilen in excel zusammenführen?

ich habe eine Excel-Tabelle mit mehr als 6000 Zeilen. Alle enthalten Text und Ziffern, wobei eigentlich immer 2 zusammengehören. Kann man irgendwie alle markieren und alle in 2er Paaren zu einer Zeile zusammenführen? Also jeweils eine gerade mit einer ungeraden, so dass dann der Text/Ziffern aus jeweils 2 zeilen in einer steht?

Vielen Dank.

...zur Frage

Excel - Zeilen hinzufügen

Schönen guten Tag, ich habe ein kleines Excel-Problem und hoffe auf Eure Hilfe!

Ich habe ein Arbeitsblatt, in dem mehrere Tabellen untereinander stehen. Am Ende der Tabellen lässt sich auch jeweils, wie gewünscht, per Tabulator eine neue Zeile einfügen. Die anderen Tabelle "rutschen" dann jeweils weiter nach unten.

Nun habe ich einen Button erstellt, der in allen Tabellen automatisch Zeilen mit einem bestimmten Inhalt ausblendet. Das Makro scheint jedoch leider auch zu bewirken, dass ich nur noch in der untersten Tabelle Zeilen per Tabulator hinzufügen kann. Bei den Tabellen darüber geht dies nur, bis die nächste Tabelle erreicht ist. Die unteren Tabellen schieben sich quasi nicht mehr automatisch nach unten, wenn in der Tabelle drüber Zeilen hinzugefügt werden.

Was kann ich tun, um auch bei aktiviertem Button/Makro Zeilen in allen Tabellen automatisch hinzufügen zu können?

Vielen Dank!

...zur Frage

Was möchtest Du wissen?