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

Mit Filter sortieren

Mit Filter sortieren
06.01.2008 20:44:00
mike49
Hallo zusammen,
ich habe ein Makro mit dem Rekorder erstellt, das im Prinzip auch funktioniert.
Ich hätte es jetzt gerne abgeändert:
Wenn ich Einträge in Zeilen lösche, sollen diese leeren Zeilen an den Schluss der Tabelle verschoben werden. Es sollen also keine Leerzeilen nach dem Sortieren zwischen den Einträgen vorhanden sein.
Wie muss man ergänzen bzw. ändern?
Gruß
Mike49

Sub Sortieren()
Application.ScreenUpdating = False
Range("J13:AC145").Select
Selection.AutoFilter
Selection.AutoFilter Field:=2, Criteria1:=""
Selection.Sort Key1:=Range("K13"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Selection.AutoFilter
ActiveWindow.ScrollRow = 1
Range("A1").Select
Application.ScreenUpdating = True
End 

Sub

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mit Filter sortieren
06.01.2008 21:33:00
Gerd
Hallo Mike,
versuche es mit dieser Reihenfolge (ungetestet).

Sub Sortieren2()
Application.ScreenUpdating = False
With Range("J13:AC145").AutoFilter
.Sort Key1:=Range("K13"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
.AutoFilter Field:=2, Criteria1:=""
.AutoFilter
End With
ActiveWindow.ScrollRow = 1
Range("A1").Select
Application.ScreenUpdating = True
End Sub


Gruß Gerd

AW: Mit Filter sortieren
06.01.2008 21:47:46
mike49
Hallo Gerd,
funzt leider nicht.
Gruß
Mike49

Anzeige
AW: Mit Filter sortieren
06.01.2008 21:52:25
Gerd
Hallo Mike,
Asche über mein Haupt. :-)
Lasse bitte in der Codezeile mit "With...." .Autofilter
weg.
Und probier es anschließend nochmal.
Gruß Gerd

AW: Mit Filter sortieren
06.01.2008 22:04:00
mike49
Hallo Gerd,
im Prinzip funktioniert es. Ich hätte allerdings dazusagen sollen, dass Einträge im Zellbereich A12:AC145 immer nur in jeder zweiten Zeile vorhanden sind. Der erste Eintrag in Zeile A13, der zweite in A15 usw. bis A145. Deshalb musste man zum Sortieren ja die Filterfunktion verwenden.
Wenn ich dein Makro laufen lasse, werden alle "Leerzeilen" zwischen den Eintragszeilen gelöscht.
Gruß
MIke49

Anzeige
AW: Mit Filter sortieren
06.01.2008 23:03:58
Gerd
Hallo Mike,
wenn Range("J13:AC145") als Sortierbereich genommen wird, wird die Spalte "A" nicht mit sortiert.
Ist dies das Problem ?
Kannst Du den Sortierbereich auf "A13:AC145" erweitern ?
Gruß Gerd

AW: Mit Filter sortieren
06.01.2008 23:22:00
mike49
Hallo Gerd,
Die Spalten A:I sind immer leer. Das ist nicht das Problem.
Gruß
Mike49

AW: Mit Filter sortieren
06.01.2008 23:36:00
Gerd
Hallo Mike,
Hhm. Du machst was genau wie ?
Danach soll ?
Gruß Gerd

AW: Mit Filter sortieren
07.01.2008 09:09:00
mike49
Hallo Gerd,
mir ist es gestern zu spät geworden.
Ich habe mal die Datei hochgeladen, um ein langes Hin und Her zu vermeiden.
https://www.herber.de/bbs/user/48846.xls
Wenn ich einen oder mehrere Einträge aus der Liste lösche, durch andere ersetze und anschließend sortiere, entstehen keine Probleme.
Anders verhält es sich, wenn ich die gelöschten Einträge nicht ersetze. Die Zeilen bleiben nach dem Sortieren leer. So soll es aber nicht sein. Die "Leerzeilen" sollen am Schluss der Tabelle auftauchen.
Wäre schön, wenn du eine Lösung hättest.
Gruß
Mike49

Anzeige
AW: Mit Filter sortieren
09.01.2008 21:57:00
Gerd
Hallo Mike,
lasse dies mal vor dem "Schütteln" mit deinem Makro laufen.

Sub test()
Dim Zeile1 As Long, Zeile2 As Long
Zeile1 = Range("A65536").End(xlUp).Row - 2
For Zeile2 = Range("K" & Zeile1).End(xlUp).Row To 14 Step -1
If Application.WorksheetFunction.CountA(Range("J" & Zeile2 & ":AC" & Zeile2 - 1)) = 0 Then
Rows(Zeile2).Delete
Rows(Zeile1).Insert shift:=xlDown
End If
Next
End Sub


Gruß Gerd

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige