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

Excel VBA- Benutzerdefinierte Sortierung

Excel VBA- Benutzerdefinierte Sortierung
16.10.2023 06:14:32
frosi0
Hallo Gemeinde,
ich kämpfe nach langer Zeit mal wieder und bitte sehr um Hilfe: Excel 365,
Meine Datentabelle umfasst ca 12000 Datensätze (es geht um Ahnenforschung), diese sind in Spalte A ab A20 nummeriert( DS von 1 bis ca 12000 diese können noch mehr werden in dieser Reihe), nun habe ich DS mit Nummern ab 14900 hinzugefügt welche ich optional mit der Sortierung vor die Nummern 1-13999 bringen möchte. Die Nummerierung ist durchaus lückenhaft.
Nach Möglichkeit möchte ich keine weitere Hilfsspalte einfügen.

Die gewünschte Sortier-Reihenfolge soll werden:
größer 14900 (oder 14900 bis 20000) dann
1 bis 13999 dann
alle anderen Inhalte die evtl. vorhanden sind

Die Zellen sind im Standartformat

Bei Sortierungen mit anderen Kriterien und anderen Spalten funktioniert mein Makro.
Was übersehe ich ? Kann mir bitte jemand helfen?

Mein Makro -Ausschnitt sieht so aus:

If LastRow > 1 Then 'sortieren nach Spalte A=DatensatzNr
With ws.Sort
.SortFields.Clear
.SortFields.Add2 Key:=ws.Range("A20 :A" & LastRow), SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:="14901-20000,1-14900,*", DataOption:=xlSortNormal
.SetRange ws.Range(OL & ":" & UR) 'Bereich von Obenlinks bis Untenrechts = ges Listen Bereich der sortiert werden soll
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With

Schon mal herzlichen Dank im Voraus,
frosi0

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

Betreff
Datum
Anwender
Anzeige
AW: Excel VBA- Benutzerdefinierte Sortierung
16.10.2023 06:25:44
Oberschlumpf
Hi,

per Upload eine Bsp-Datei mit Bsp-Daten und deinem Code könnte vllt besser helfen.

Ciao
Thorsten
AW: Excel VBA- Benutzerdefinierte Sortierung
16.10.2023 08:22:36
frosi0
hier habe ich eine gekürzte Beispieldatei, den Code zusätzlich in einem Tabellenblatt abgespeichert:
https://www.herber.de/bbs/user/163462.xlsm
Grüße frosi
AW: Excel VBA- Benutzerdefinierte Sortierung
16.10.2023 11:02:40
Oberschlumpf
ich würd mich freuen, wenn du all deine Beiträge mit ner Begrüßung startest, da alles dann gleich freundlicher beginnt

Hi,

so, hier, hab da was für dich :-)
https://www.herber.de/bbs/user/163473.xlsm

Ich hab mir deinen Code nicht angeschaut, da ich selbst schon eine Idee hatte.
Ich hab ein zusätzliches, allgemeines Modul namens "Oberschlumpf" hinzugefügt; nur in diesem Modul hab ich meinen Code geschrieben; das Makro heißt "sbSortCustDef".

Ablauf:
- das Originalblatt wird als Kopie mit dem Namen "NEU wegen Sortieren" ans Ende aller Blätter eingefügt
- eine unbenutzte Spalte wird als Hilfsspalte festgelegt, die ich trotzdem für meine Idee benötige, obwohl du das ja eigtl nicht wolltest
- alle Zeilen mit Werten in Spalte A >=14000 und =20000 erhalten in Hilfsspalte den Wert 1
- alle Zeilen mit Werten in Spalte A >=1 und =13999 erhalten in Hilfsspalte den Wert 2
- alle anderen Zeilen, deren Wert in Spalte A nicht 1 oder 2 entspricht, erhalten in Hilfsspalte den Wert 3
- alle Datenzeilen werden sortiert
Sortierkriterium 1 = Hilfsspalte Zahlen aufsteigend
Sortierkriterium 2 = in Spalte A Zahlen aufsteigend
- Hilfsspalte wird wieder gelöscht

fertig

So, jetzt hast du in Datei zwar noch immer ein zusätzliches Blatt namens "NEU wegen Sortieren".
Aber ich dachte mir...
a) ich lass das erst mal so, damit du in Ruhe alles verfolgen + verstehen kannst
b) und sobald du das Originalblatt gegen das neue Blatt tauschen willst, kannst du dafür ja selbst den Code hinzufügen

Bitte beachte alle Kommentare im Code.

Konnte ich helfen?

Ciao
Thorsten
Anzeige
AW: Excel VBA- Benutzerdefinierte Sortierung
16.10.2023 11:04:29
Yal
Hallo Friedrich (eindeutige Pseudo sind im Forum immer gut, aber zum Anprechen ist ein Vorname besser ;-)

das Sortieren von Zahlen in verschiedenen Cluster ist ein bischen kompliziert.
leichter wäre eine separate Spalte, wenn auch temporär, zu erzeugen, die die Sortierung ganz einfach machen würde. Innerhalb eines Makros kann man die Anzeigeaaktualisierung blockieren, die Spalte inkl. Formel einfügen, sortieren, spalte entsorgen und dann Anzeigerefresh wieder einschalten.

VG
Yal
AW: Excel VBA- Benutzerdefinierte Sortierung
16.10.2023 12:48:22
frosi0
sorry wegen Anrede:
Hallo Oberschlumpf, Hallo Yal,
Die Lösung von dir Oberschlumpf, macht genau das was ich brauche, ich hab's schon integriert.
Super und Danke für die Lösung an Oberschlumpf und die Absicht mir zu helfen (Yal)

Ich werde jetzt noch das zurückkopieren der sortierten Daten in meine Original(Quell-)Tabelle einbauen
und nach korrektem Eintrag die Hilfstabelle wieder löschen

Info: die Dauer ist ca 125 sec. ohne Rückübertragung und Löschung. das ist OK.

Nochmals großen Dank
Grüße Friedrich
Anzeige
AW: Excel VBA- Benutzerdefinierte Sortierung
16.10.2023 13:46:29
frosi0
Hallo Oberschlumpf

da ist doch noch ein kleiner Wunsch:
mit diesem Baustein bringe ich die sortierte Telle in mein 'Quell-Tabelle

..
-

' und dann Temporäre Tabelleninhalt zurückkopieren
Application.Goto Reference:="KiBuListeAT"
Selection.Copy
Sheets("Kirchbücher Altentr Einträge").Select
Application.Goto Reference:="BereichObenLinks"
ActiveSheet.Paste
ActiveCell.Select
'Temp-Tabelle löschen
Sheets("NEU wegen Sortieren").Select
Application.CutCopyMode = False
ActiveWindow.SelectedSheets.Delete
Application.Goto Reference:="KiBuListeAT"
ActiveCell.Select
ActiveCell.Select
..dann folgt End Sub

Fragen:
A:
dabei werden Sicherfragen wegen vorhandener Bereichsnamen zur Entscheidung vorgelegt,
diese kann ich aber alle mit 'ja' abdrücken, kann ich das in diesem Fall unterdrücken?
und B:
wie kann ich komfortabel die Hilfstabelle löschen

Gruß Friedrich
Anzeige
AW: Excel VBA- Benutzerdefinierte Sortierung
16.10.2023 20:17:33
Oberschlumpf
Hi Friedrich,

erst mal freuts mich, dass ich helfen konnte.

Jetzt möcht ich ein wenig angeben :-)...guckst du...

Userbild

Ich hab mal die ca 1700 Zeilen in der Bsp-Datei auf fast 20.000 Zeilen erweitert, und dann das Makro gestartet = WENIGER ALS 2 Sekunden! = YEAHH! :-)
Is schon schön, wenn man einen Computer mit Intel I7 Prozessor + 32 GB RAM nutzen kann :-)

Und jetzt, na ja, es stört mich schon ein wenig, dass bei dir alles über 2 Minuten dauert! :-/
Ich hatte so etwas zwar schon geahnt - der Grund ist die For/Next-Schleife, die eben jede Zeile von 21 bis letzte genutzte Zeile durchläuft.
Aber leider hab ich gerad auch keine bessere Idee, wie man das Ganze schneller hinbekommen könnte.

So, nun zu deinen neuen Fragen.
ähhh???? Bitte was hast du denn da für ein Gewurschtel versucht?????
Du gibst als Level VBA Gut an - sorry! Da hab ich von dir schon ein wenig mehr erwartet - vor allem aber KEIN SELECT !

zu A)
mach dich mal schlau über DisplayAlerts (wird in meiner Datei auch schon verwendet)

zu B)
hier noch mal die angepasste Datei
https://www.herber.de/bbs/user/163490.xlsm

Bei mir gibts kein A)-Problem und auch kein B)-Problem - funktionierts bei dir auch?

Ciao
Thorsten
Anzeige
AW: Excel VBA- Benutzerdefinierte Sortierung
16.10.2023 22:07:27
frosi0
Hallo Thorsten
uups.. das macht ja genau das inclusive meinem A und B !

Ich frage jetz nicht was ich da falsch gemacht hatte, wichtig ist, dass es geht.

Und das mit der Selbsteinschätzung muß ich wohl überdenken ;-))

Ich werde die beiden Musterdateien vergleichen, Morgen ist Enkel-Tag.

Nichts für Ungut und nochmals vielen Dank.
Grüße Friedrich
AW: Excel VBA- Benutzerdefinierte Sortierung
16.10.2023 22:11:16
frosi0
Nachtrag: Mit der AntwortZeit der Programmroutine mit meinem Rechner kann ich leben, es ist aber schon beeindruckend was ein ordentlicher Rechner leisten kann.
Gute Nacht Friedrich

(ich wollte dies nicht unbeachtet lassen)
Anzeige
AW: Excel VBA- Benutzerdefinierte Sortierung
16.10.2023 11:05:52
Oberschlumpf
Hi Yal,

hab ich alles schon gemacht :-)

Ciao
Thorsten
AW: Excel VBA- Benutzerdefinierte Sortierung
16.10.2023 11:58:09
Yal
:-)
kann ich mich vorstellen. Ich war noch beim Nachricht schreiben, als Du gepostet hast. Daher die Überschneidung

VG
Yal

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige