Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
452to456
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
452to456
452to456
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Makro: SortSplit

Makro: SortSplit
13.07.2004 11:11:53
Achim
Hallo,
vor langer Zeit habe ich bei Herber folgendes Makro gefunden und finde es für meine Arbeit überaus hilfreich. Es splittet innerhalb einer Mappe eine Tabelle in mehrere Teiltabellen auf.
Herber Makro 174502

Sub SortSplit()
Dim wks As Worksheet
Dim iRow As Integer, iRowT As Integer
Application.ScreenUpdating = False
Set wks = ActiveSheet
Range("A1").Sort key1:=Range("A2"), order1:=xlAscending, header:=xlYes
iRow = 2
Do Until IsEmpty(wks.Cells(iRow, 1))
If Left(wks.Cells(iRow, 1), 15) <> Left(wks.Cells(iRow - 1, 1), 15) Then
Worksheets.Add after:=Worksheets(Worksheets.Count)
Rows(1).Value = wks.Rows(1).Value
Rows(1).Font.Bold = True
Columns(1).Font.Bold = True
Columns("A:U").AutoFit
ActiveSheet.Name = Left(wks.Cells(iRow, 1), 15)
iRowT = 1
End If
iRowT = iRowT + 1
Rows(iRowT).Value = wks.Rows(iRow).Value
iRow = iRow + 1
Loop
Worksheets(1).Select
Application.ScreenUpdating = True
End Sub

Für mich persönlich hat es hat es zwei Nachteile.
1. Die aufgesplitteten Tabellenblätter haben nicht mehr die Formatierungen des ursprünglichen Tabellblattes
2. Es wird nur nach dem Inhalt der ersten Spalte aufgesplittet.
Kann das jemand ändern ?
1. Die Zellformatierungen sollen beim Splitten übernommen werden
2. Möglichkeit zur Auswahl der Spalte, nach der die Daten gesplittet werden sollen
Vielen Dank
Achim Baumann

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro: SortSplit
Beni
Hallo Achim,
Gruss Beni

Sub SortSplit_mit_Spaltenausw_und_Formatübernahme()
sp = Application.InputBox("Spalte splitten")
Dim wks As Worksheet
Dim iRow As Integer, iRowT As Integer
Application.ScreenUpdating = False
Set wks = ActiveSheet
Range("A1").Sort key1:=Range(sp & "2"), order1:=xlAscending, header:=xlYes
iRow = 2
Do Until IsEmpty(wks.Cells(iRow, 1))
If Left(wks.Cells(iRow, 1), 15) <> Left(wks.Cells(iRow - 1, 1), 15) Then
Worksheets.Add after:=Worksheets(Worksheets.Count)
wks.Rows(1).Copy Rows(1)
Rows(1).Font.Bold = True
Columns(1).Font.Bold = True
Columns("A:U").AutoFit
ActiveSheet.Name = Left(wks.Cells(iRow, sp), 15)
iRowT = 1
End If
iRowT = iRowT + 1
wks.Rows(iRow).Copy Rows(iRowT)
iRow = iRow + 1
Loop
Worksheets(1).Select
Application.ScreenUpdating = True
End Sub

Anzeige
AW: Makro: SortSplit
Achim
Hallo Beni,
heute morgen getestet. Es läuft super und entspricht nun genau meinen Vorstellungen. Nochmals vielen Dank für die schnelle Hilfe.
Gruß Achim
AW: Makro: SortSplit
Achim
Hallo Beni,
ich muss doch noch einmal auf die Sache zurück kommen. Habe leider erst jetzt festgestellt, dass im Makro ein Fehler sein muss. Habe mal kleine Beispieltabelle beigefügt. Splitten nach Spalte A und B funktioniert ohne Fehlermeldung. Sobald ich jedoch eine andere Spalte angebe, z.B. Standort der Fahrzeuge, bricht das Makro mit Fehlermeldung ab. Kannst Du Dir die Sache bitte einmal anschauen. Danke.
Beispieldatei: https://www.herber.de/bbs/user/8556.xls
Gruß Achim
Anzeige
AW: Makro: SortSplit
Beni
Hallo Achim,
ich habe den restlichen Code nicht näher beachtet, darum habe ich es nicht bemerkt.
Gruss Beni

Sub SortSplit_mit_Spaltenausw_und_Formatübernahme()
sp = Application.InputBox("Spalte splitten")
Dim wks As Worksheet
Dim iRow As Integer, iRowT As Integer
Application.ScreenUpdating = False
Set wks = ActiveSheet
Range("A1").Sort key1:=Range(sp & "2"), order1:=xlAscending, header:=xlYes
iRow = 2
Do Until IsEmpty(wks.Cells(iRow, 1))
If Left(wks.Range(sp & iRow), 15) <> Left(wks.Range(sp & iRow - 1), 15) Then
Worksheets.Add after:=Worksheets(Worksheets.Count)
wks.Rows(1).Copy Rows(1)
Rows(1).Font.Bold = True
Columns(1).Font.Bold = True
ActiveSheet.Name = Left(wks.Cells(iRow, sp), 15)
iRowT = 1
End If
iRowT = iRowT + 1
wks.Rows(iRow).Copy Rows(iRowT)
iRow = iRow + 1
Columns("A:U").AutoFit
Loop
Worksheets(1).Select
Application.ScreenUpdating = True
End Sub

Anzeige
AW: Makro: SortSplit
Achim
Hallo Beni,
PERFEKT !!!! Jetzt läuft es super.
Nochmals vielen Dank für Deine Hilfe.
Gruß Achim

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige