Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1944to1948
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

Zeilen ordnen

Zeilen ordnen
03.09.2023 23:02:42
Herrmann
Guten Tag,

ich habe ein eine Tabelle mit ca. 15000 Zeilen und möchte diese Ordnen. Ich habe es schon mit ChatGPT versucht aber ich komme damit auf keine zufriedenstellende Lösung.

ich stehe vor der Aufgabe, eine Tabelle mit etwa 15.000 Zeilen zu sortieren. Bisher habe ich versucht, dies mit ChatGPT zu erreichen, jedoch konnte ich keine zufriedenstellende Lösung erzielen.

In Spalte A finden sich Artikelnummern, während Spalte B die gleichen Artikelnummern enthält, jedoch in einer anderen Reihenfolge als in Spalte A. Die übrigen Spalten sind mit Spalte B verknüpft.
Mein Ziel ist es, die Zeilen in den Spalten B bis E (in der Orginal-Datei bis AA) basierend auf der Reihenfolge in Spalte A zu sortieren und dabei sicherstellen, dass die restlichen Spalten ebenfalls entsprechend angepasst werden

Beigefügt eine Beispiel-Datei. In der Orginal-Datei, die ca. 15.000 Zeilen enthält, können einige Artikelnummern aus Spalte A in Spalte B fehlen. Diese Zeilen sollten nicht berücksichtigt werden und einfach leer bleiben.
https://www.herber.de/bbs/user/162667.xlsx

Kann mir jemand hierbei bitte helfen?
Vielen Dank im Voraus für Ihre Unterstützung!

GRUß

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilen ordnen
03.09.2023 23:05:50
Herrmann
Sorry, ich habe beim Bearbeiten des Textes versehentlich den ersten Satz vergessen zu entfernen..
Zeilen ordnen
04.09.2023 11:46:19
Herrmann
Hallo Herbert,

auch dir vielen Dank für deine Bemühung. Funktioniert super, auch das automatische einfügen von leeren Zeilen wenn ein Wert in Spalte B nicht mit Spalte A übereinstimmt, TOP!
Jedoch hat es hat bei ca Zeile 1300 aufgehört weiter zu sortieren. Mir wird bei
lArt1 = Cells(a, 1)
Laufzeitfehler'13' angezeigt.
Kann es daran liegen, dass bestimmte Zellen (also bei den Artikelnummer) auch paar Buchstaben erhalten?

GRUß
Anzeige
Zeilen ordnen
04.09.2023 12:22:10
GerdL
Moin,

schreibe im Code von Herbert in der Deklarationszeile (Dim ...) statt lArt1&
lArt1 As Variant
damit die Variable Buchstaben verarbeitet.

Gruß Gerd
Danke an euch allen!
04.09.2023 12:35:53
Herrmann
Vielen Dank für eure Bemühungen!
Funktioniert nun einwandfrei mit der Lösung von Herbert und der Korrektur von GerdL

Schönen Tag noch :)

GRUß
AW: Bitte sehr, gerne geschehen! owt
04.09.2023 16:32:29
Herbert Grom
,,,
AW: Zeilen ordnen
03.09.2023 23:27:48
GerdL
Hallo Herrmann,

schau mal, ob das so schon passt.

Sub Unit()


Range("B:E").Sort Key1:=Range("B2"), Order1:=xlAscending, Header:=xlYes
Range("A:A").Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlYes

End Sub

Gruß Gerd
Anzeige
AW: Zeilen ordnen
04.09.2023 00:12:07
Herrmann
Hallo GerdL grüß dich,

auf der Beispiel-Datei passt es auf jeden Fall! Danke dir für die tolle Lösung, werde ich später an der Orginal-Datei auch probieren!

Die Reihenfolge in Spalte A hat sich mit verändert. Wonach ordnet es denn, einfach willkürlich? Kann diese nicht auch unverändert bleiben also die Reihenfolge beibehalten?

GRUß
AW: Zeilen ordnen
04.09.2023 05:26:00
Ulf
Hi Gerd,
kann man auch sehr schnell manuell erledigen. Aufgezeichneter Code und Schritte


Sub Makro1()
'Hilfsspalte einfügen und durchnumerieren
Columns("A:A").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("A1").Select
ActiveCell.FormulaR1C1 = "SortA"
Range("A2").Select
ActiveCell.FormulaR1C1 = "1"
Range("A2:A9").Select
Selection.DataSeries Rowcol:=xlColumns, Type:=xlLinear, Date:=xlDay, _
Step:=1, Trend:=False
Range("C1:F9").Select
ActiveWorkbook.Worksheets("Tabelle1").Sort.SortFields.Clear
'Bereich vormals B:B sortieren
ActiveWorkbook.Worksheets("Tabelle1").Sort.SortFields.Add Key:=Range("C2:C9") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Tabelle1").Sort
.SetRange Range("C1:F9")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A1:B9").Select
ActiveWorkbook.Worksheets("Tabelle1").Sort.SortFields.Clear
'Bereich vormals A:A sortieren
ActiveWorkbook.Worksheets("Tabelle1").Sort.SortFields.Add Key:=Range("B2:B9") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Tabelle1").Sort
.SetRange Range("A1:B9")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A1:F9").Select
ActiveWorkbook.Worksheets("Tabelle1").Sort.SortFields.Clear
'Ursprüngliche Sortierung wiederherstellen
ActiveWorkbook.Worksheets("Tabelle1").Sort.SortFields.Add Key:=Range("A2:A9") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Tabelle1").Sort
.SetRange Range("A1:F9")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
'Hilfsspalte löschen
Columns("A:A").Select
Selection.Delete Shift:=xlToLeft
End Sub

hth
Ulf
Anzeige
AW: Zeilen ordnen
04.09.2023 08:17:51
Herrmann
Guten Morgen Ulf,

funktioniert ganz gut, danke auch dir!!

GRUß
AW: Zeilen ordnen
04.09.2023 08:53:46
Herrmann
Hallo nochmal,

ich habe versucht deine Lösung auf die Orginal-Datei zu übertragen und das Ergebnis war leider sehr durcheinander und fehlerhaft.
Eventuell liegt es an meiner Implementierung und auf das beziehen meiner tatsächlichen Spalten.
In der Orginal-Datei ist alles gleich aufgebaut, nur dass die Spalten bis (erstmal) O geht und 15000 Zeilen vorhanden sind. Die Tabelle heißt "Ordnen"
Kannst du mir da nochmal unter die Hand greifen?

Sub Makro1()

'Hilfsspalte einfügen und durchnumerieren
Columns("A:A").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("A1").Select
ActiveCell.FormulaR1C1 = "SortA"
Range("A2").Select
ActiveCell.FormulaR1C1 = "1"
Range("A2:A15000").Select
Selection.DataSeries Rowcol:=xlColumns, Type:=xlLinear, Date:=xlDay, _
Step:=1, Trend:=False
Range("C1:O15000").Select
ActiveWorkbook.Worksheets("Ordnen").Sort.SortFields.Clear
'Bereich vormals B:B sortieren
ActiveWorkbook.Worksheets("Ordnen").Sort.SortFields.Add Key:=Range("C2:C15000") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Ordnen").Sort
.SetRange Range("C1:O15000")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A1:B15000").Select
ActiveWorkbook.Worksheets("Ordnen").Sort.SortFields.Clear
'Bereich vormals A:A sortieren
ActiveWorkbook.Worksheets("Ordnen").Sort.SortFields.Add Key:=Range("B2:B15000") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Ordnen").Sort
.SetRange Range("A1:B15000")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A1:O15000").Select
ActiveWorkbook.Worksheets("Ordnen").Sort.SortFields.Clear
'Ursprüngliche Sortierung wiederherstellen
ActiveWorkbook.Worksheets("Ordnen").Sort.SortFields.Add Key:=Range("A2:A15000") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Ordnen").Sort
.SetRange Range("A1:O15000")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
'Hilfsspalte löschen
Columns("A:A").Select
Selection.Delete Shift:=xlToLeft
End Sub



GRUß
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige