Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1300to1304
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

Lücken auffüllen und neu sortieren

Lücken auffüllen und neu sortieren
14.03.2013 11:17:11
Tobiax
Hallo!
Ich habe eine Excel Datei mit 15 Zeilen (16-30).
Zum Teil sind diese mit Text gefüllt.
Ich hätte gerne ein Makro, welches mir auf Knopfdruck alle Texte so weit wie möglich nach unten schreibt, so daß die obersten Zeilen immer frei bleiben. Die ursprüngliche Reihenfolge ist dabei unerheblich.
Eigentlich ist dies mit der normalen Sortierfunktion kein Problem, aber da die Zeilen zum Teil verbunden sind, gibt es eine Fehlermeldung.
https://www.herber.de/bbs/user/84356.xlsx
Bitte um Hilfe, Tobiax ...

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Lücken auffüllen und neu sortieren
14.03.2013 11:22:32
Klaus
Hi Tobiax,
aber da die Zeilen zum Teil verbunden sind
Dann lös doch den Zellenverbund auf und sortiere dann D16:D30.
Damit ändert sich optisch in deiner Datei .... gar nichts. Um die Excel-Rahmen zu verhinden, füll den Bereich weiß.
Grüße,
Klaus M.vdT.

AW: Lücken auffüllen und neu sortieren
14.03.2013 11:38:23
Tobiax
Hallo!
Manchmal sieht man den Wald vor lauter Bäumen nicht.
Das war scho mal ein guter Tipp.
Aber, ich möchte ja, daß die Texte dann unten stehen und oben die leeren Zeilen sind.
Dies funktioniert leider nicht mit der normalen Sortierfunktion.
Wie bereits erwähnt spielt die ursprüngliche Reihenfolge keine Rolle.
Hier noch einmal die überarbeitete Datei mit "vorher" und "nachher":
https://www.herber.de/bbs/user/84357.xlsx
Tobiax ...

Anzeige
AW: Lücken auffüllen und neu sortieren
14.03.2013 11:58:03
Klaus
Hi,
hier der Code:
Private Sub NachUntenSchieben()
Dim r As Range
Dim rSort As Range
Set rSort = Range("D16:W30")
For Each r In Range(rSort.Cells(1, 1), rSort.Cells(rSort.Rows.Count, 1))
If r.Value = "" Then r.Value = "ZZZZZZ####"
Next r
Sort.SortFields.Clear
Sort.SortFields.Add Key:=Range(rSort.Cells(1, 1), rSort.Cells(rSort.Rows.Count, 1)), SortOn:= _
xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With Sort
.SetRange rSort
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
For Each r In Range(rSort.Cells(1, 1), rSort.Cells(rSort.Rows.Count, 1))
If r.Value = "ZZZZZZ####" Then r.Value = ""
Next r
End Sub
Du hattest recht, die Sortierroutine ignoriert leere Zellen. Ich habe etwas getrickst :-)
Grüße,
Klaus M.vdT.

Anzeige
AW: Lücken auffüllen und neu sortieren
14.03.2013 12:21:19
Daniel
Hi
warum so umständlich.
im Prinzip reicht es, in die Leeren Zellen der Spalte D eine 0 reinzuschreiben und dann zu sortieren.
Das Leerzeichen kann dann auch drinbleiben
With Range("D16:W30")
.columns(1).Replace "", 0, xlwhole
.sort Key1:=.Cells(1, 1), order1:=xlascending, Header:=xlno
.Columns(1).Replace 0, "", xlwhole
End With
das funtkionert dann auch mit der Ersezten-Methode von Hand, wenn es mal ohne Makro gehen soll:
nichst durch 0 ersetzen (mit der Einstellung "Gesamten Zellinhalt vergleichen"), dann sortieren und dann die 0 wieder mit der Ersetzen-Methode entfernen.
Gruß Daniel

Anzeige
AW: Lücken auffüllen und neu sortieren
15.03.2013 15:47:41
Tobiax
DANKE, ihr seid wie immer die Besten !!!

Danke für die Rückmeldung! owT.
18.03.2013 08:30:46
Klaus
... und danke für die Code-Optimierung, Daniel!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige