Autor
|
Thema: Liste sortieren mit Trennlinien (2225 mal gelesen)
|
piston Mitglied Konstrukteur
Beiträge: 140 Registriert: 18.05.2004 Pro/E WF4<P>Windows XP 64bit
|
erstellt am: 19. Feb. 2013 08:30 <-- editieren / zitieren --> Unities abgeben:
Hallo! Ich hoffe es kann mit jemand bei folgendem Problem weiterhelfen: Ich habe eine Liste: Ab1 Ab3 Ab5 Ab3 Bb2 Bb1 Ab3 Diese soll eventuell mit Hilfe eines Makros in folgende Form gebracht werden: Ab1 --- Ab3 Ab3 Ab3 --- Ab5 --- Bb1 --- Bb2 Das heißt: Sortieren, aber auch nach jeder neuen Bezeichnung (neuem Zelleninhalt) soll eine Trennzeile mit z.B. "---" eingefügt werden. Ich brauche das, da ich eine sehr lange Liste habe, über die ich auf einem anderen Arbeitsblatt mittels Datenüberprüfung ein Drop Down zur Werteauswahl erstellt habe. Um sich im Drop Down leichter orientieren zu können, wären solche Trennlinien sehr hilfreich. DANKE! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
skyzem Mitglied
Beiträge: 400 Registriert: 30.08.2006 Win 7 Enterprise x64 Cornerstone 5.3.0.5 Minitab 16.2.1.0 Excel 2010 Notepad++ 6.3.1 Putty 0.63 Calc.exe
|
erstellt am: 19. Feb. 2013 10:23 <-- editieren / zitieren --> Unities abgeben: Nur für piston
Hallo piston Hier, quick & dirty: Als erstes musst du die Spalte sortieren, egal ob von A-Z oder von Z-A, hauptsache gleiche Werte liegen untereinander. Dann folgendes Makro starten, wobei du den Startpunkt (Erste Zelle der Liste) bei den zwei Konstanten angibst. 1,1 für A1 Code: Sub test() Const spalte As Integer = 1 '(Enspricht A) Const starzeile As Integer = 1 '(Enspricht 1) LCiR = Cells(Rows.Count, spalte).End(xlUp).Row For i = starzeile + 1 To LCiR If Cells(i, spalte) <> Cells(i - 1, spalte) Then Cells(i, spalte).Insert Shift:=xlDown Cells(i, spalte).Value = "---" i = i + 1 End If Next End Sub
PS. Das Sortieren kannst du ja mit dem Makrorecorder aufzeichnen. ------------------ MfG skyzem Wir mögen Menschen, die frisch heraus sagen, was sie denken - falls sie dasselbe denken wie wir. isleofwords.com - shortstorys in between [Diese Nachricht wurde von skyzem am 19. Feb. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
piston Mitglied Konstrukteur
Beiträge: 140 Registriert: 18.05.2004 Pro/E WF4<P>Windows XP 64bit
|
erstellt am: 19. Feb. 2013 13:12 <-- editieren / zitieren --> Unities abgeben:
|
StefanBerlitz Ehrenmitglied V.I.P. h.c. IT Admin (CAx)
Beiträge: 8756 Registriert: 02.03.2000 SunZu sagt: Analysiere die Vorteile, die du aus meinem Ratschlag ziehst. Dann gliedere deine Kräfte entsprechend und mache dir außergewöhnliche Taktiken zunutze.
|
erstellt am: 19. Feb. 2013 14:24 <-- editieren / zitieren --> Unities abgeben: Nur für piston
Hallo piston, das passiert bei schnellen, dreckigen Makros schon mal - in dem Fall liegt es daran, dass durch das Einfügen der Zeilen mit dem Strich die Anzahl der Zeilen nicht mehr bis zum Ende hin stimmt. In diesem Fall ist es besser von hinten nach vorne die Zeilen zu durchlaufen. Hier das angepasste Makro von skyzem:
Code:
Sub test() Const spalte As Integer = 1 '(Enspricht A) Const starzeile As Integer = 1 '(Enspricht 1) LCiR = Cells(Rows.Count, spalte).End(xlUp).Row For i = LCiR To starzeile + 1 Step -1 If Cells(i, spalte) <> Cells(i - 1, spalte) Then Cells(i, spalte).Insert Shift:=xlDown Cells(i, spalte).Value = "---" End If Next End Sub
Ciao, Stefan------------------ Inoffizielle deutsche SolidWorks Hilfeseite http://solidworks.cad.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
skyzem Mitglied
Beiträge: 400 Registriert: 30.08.2006 Win 7 Enterprise x64 Cornerstone 5.3.0.5 Minitab 16.2.1.0 Excel 2010 Notepad++ 6.3.1 Putty 0.63 Calc.exe
|
erstellt am: 19. Feb. 2013 15:33 <-- editieren / zitieren --> Unities abgeben: Nur für piston
Danke Stefan Der Code war ja wirklich richtig dreckig Sogar die ts habe ich in Entspricht versudelt... ------------------ MfG skyzem Wir mögen Menschen, die frisch heraus sagen, was sie denken - falls sie dasselbe denken wie wir. isleofwords.com - shortstorys in between [Diese Nachricht wurde von skyzem am 19. Feb. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
piston Mitglied Konstrukteur
Beiträge: 140 Registriert: 18.05.2004 Pro/E WF4<P>Windows XP 64bit
|
erstellt am: 19. Feb. 2013 15:39 <-- editieren / zitieren --> Unities abgeben:
|