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

Sortieren: Eingeblendete Zeilen unter ausgeblendet

Sortieren: Eingeblendete Zeilen unter ausgeblendet
05.08.2019 11:11:05
Andreas
Hallo Liebe Forumsmitglieder
Jetzt brauch ich doch wider eure Hilfe.
Könnt mir bitte sagen/Zeigen wie ich per VBA die Ausgeblendeten Zeilen innerhalb einer Intelligenten Tabelle nach ober über die eingeblendeten sortieren kann. Bzw (umgekehrt Falls das einfacher ist) die sichtbaren Zeilen sollen so umsortiert werden das sie unterhalb der ausgeblendeten sind.
Ich verwende einen Advanced Filter um Daten in einer Intelligenten Tabelle auszufiltern, allerdings brauche ich diese Datenzeilen dann später für etwas anderes am Ende der Intelligenten Tabelle.
Ev. falls das Überhaupt möglich ist, wüsste ich gern ob jemand einen weg wüsste. Nach der umsortieren die eingeblendeten und ausgeblendeten nochmal separat zu sortieren. Sagen wir zbsp nach Spalte 1 Absteigend
Danke und Grüße
Andreas

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Sortieren: Eingeblendete Zeilen unter ausgeblendet
05.08.2019 17:33:25
onur
Verwechselst du Sortieren mit Filtern? Du schreibst einmal "Filtern", dann aber "Sortieren" - das sind zwei verschiedene Dinge.
Was genau meinst du jetzt?
AW: Sortieren: Eingeblendete Zeilen unter ausgeblendet
05.08.2019 18:48:12
Andreas
Hallo Onur
Danke für die Antwort.
Entschuldige hab wohl zu durcheinander geschrieben. Ich mein Sortieren.
Ich will erreichen das die eingeblendeten Zeilen unterhalb der ausgeblendete sind. Also keine ausgeblendeten dazwischen, sondern alle oberhalb.
Man könnte sagen das erste Sortierkriterium ist ob die Zeile ausgeblendet ist.
Testdatei mit einem eingebauten Spezialfilter und da müsst jetzt die Sortierung dran die ich nicht hinbekomme☹
Ich habe eine Textdatei erstellt https://www.herber.de/bbs/user/131276.xlsm
Und versucht sie möglichst Komfortabel zu gestalten. Danke für die Hilfe.
Grüße
Andreas
Anzeige
AW: Sortieren: Eingeblendete Zeilen unter ausgeblendet
05.08.2019 18:50:56
onur
Beim Soritieren wird nix ein- oder ausgeblendet - nur beim Flitern.
AW: Sortieren: Eingeblendete Zeilen unter ausgeblendet
05.08.2019 18:55:08
onur
Beim Filtern hingegen wird nix an deiner Tabelle (die Reihenfolge deiner Datensätze) verändert - nur beim Sortieren. Es wird nur ein- bzw ausgeblendet.
Und in deiner Datei sehe ich auch nix Ausgeblendetes.
AW: Sortieren: Eingeblendete Zeilen unter ausgeblendet
05.08.2019 19:07:45
Andreas
Hallo
Ich hab jetzt nichts ausgeblendet weil ich dachte das es so besser verständlich ist. Bitte Drück den CommandButton "Filter" in der ersten Tabellenzeile. Dann blendet er aus.
Nach dem Filtern gibt es ausgeblendetet Zeilen und die würde ich gern alle oberhalb der ersten sichtbaren haben. Kann man Eingeblendet bzw Ausgeblendet als Sortierkriterium verwenden?
Grüße
Andreas
Anzeige
AW: Sortieren: Eingeblendete Zeilen unter ausgeblendet
05.08.2019 19:13:54
onur
Nicht direkt - ich würde eine Spalte hinzufügen und per Makro alle ausgeblendeten Zeilen suchen lassen (If Rows(z).Hidden=True then ...) und da in der neuen Spalte eine grosse Zahl (z.B. 99999 oder sonst was) eintragen lassen, wenn ausgeblendet (sonst 0).
Dann Filter zurück, und nach dieser Spalte sortieren lassen (auf- bzw absteigend, je nachdem, ob oben oder unten).
AW: Sortieren: Eingeblendete Zeilen unter ausgeblendet
05.08.2019 21:06:20
Andreas
Ok, ich verstehe. Ich hatte schon befürchtet das es nicht möglich ist.
So in der richtung würdest du das meinen:

Sub ZeilenUmsortieren()
Dim wsDaten As Worksheet
Dim iTabDaten As ListObject
Set wsDaten = ThisWorkbook.Worksheets("Daten")
Set iTabDaten = wsDaten.ListObjects("Daten_IntelligenteTabelle")
Dim i As Integer
Dim LetzteS As Long
Dim LetzteZ As Long
LetzteS = iTabDaten.ListColumns.Count
LetzteZ = wsDaten.ListObjects("Daten_IntelligenteTabelle").ListRows.Count
Call SpezialfilterDatum
For i = (LetzteZ + 1) To 2 Step -1
If iTabDaten.Range.Rows(i).Hidden = True Then wsDaten.Cells(i, LetzteS + 2).Value = "y"
Next
ActiveSheet.ShowAllData
'Jetzt Sortieren
Range("Daten_IntelligenteTabelle[#All]").Select
With iTabDaten
.Sort.SortFields.Clear
.Sort.SortFields.Add2 Key:=Range("Daten_IntelligenteTabelle[S12]"), SortOn:= _
xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.Sort.Header = xlYes
.Sort.MatchCase = False
.Sort.Orientation = xlTopToBottom
.Sort.SortMethod = xlPinYin
.Sort.Apply
End With
iTabDaten.ListColumns(LetzteS + 1).Delete
Call SpezialfilterDatum
End Sub
Grüße Andreas
Anzeige
AW: Sortieren: Eingeblendete Zeilen unter ausgeblendet
05.08.2019 21:09:54
onur
Und - hat es geklappt?
AW: Sortieren: Eingeblendete Zeilen unter ausgeblendet
05.08.2019 21:35:10
Andreas
Naja, es läuft noch etwas wackelig und ich muss schauen das ich das Zusammenspiel zwischen
Filter-Sortierung-Filter noch verbessern. (es besser zusammenbauen)
Aber vom Prinzip her funktioniert es. Danke sehr
Grüße Andreas
AW: Sortieren: Eingeblendete Zeilen unter ausgeblendet
06.08.2019 16:15:59
Andreas
Hallo
Ich hätte doch noch eine Frage. Das Macro Funktionier aber hättest du vielleicht einen Vorschlag wie ich das Macro schneller machen könnte (also abgesehen von .ScreenUpdating =false usw.) Es brauch zum verarbeiten 70 000 Datensätzen etwas zu lange. Ich glaub das liegt am Schreiben der Hilfsspalte.
https://www.herber.de/bbs/user/131297.xlsm

Option Explicit
Sub ZeilenUmsortieren()
Dim wsDaten As Worksheet
Dim iTabDaten As ListObject
Set wsDaten = ThisWorkbook.Worksheets("Daten")
Set iTabDaten = wsDaten.ListObjects("Daten_IntelligenteTabelle")
Dim iDatenLZ As Long, iDatenLS As Long 'letzte zeile u. Spalte v. ListObjekt
Dim i As Integer
iDatenLS = iTabDaten.ListColumns.Count
iDatenLZ = wsDaten.ListObjects("Daten_IntelligenteTabelle").ListRows.Count + 1
Call SpezialfilterDatum1(True)
For i = iDatenLZ To 2 Step -1
If iTabDaten.Range.Rows(i).Hidden = True Then wsDaten.Cells(i, iDatenLS + 1).Value = "Z"
Next
If wsDaten.FilterMode = True Then wsDaten.ShowAllData
'Jetzt Sortieren
Range("Daten_IntelligenteTabelle[#All]").Select
With iTabDaten
.Sort.SortFields.Clear
.Sort.SortFields.Add Key:=Range("Daten_IntelligenteTabelle[S11]"), SortOn:= _
xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.Sort.SortFields.Add Key:=Range("Daten_IntelligenteTabelle[S1]"), SortOn:= _
xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.Sort.Header = xlYes
.Sort.MatchCase = False
.Sort.Orientation = xlTopToBottom
.Sort.SortMethod = xlPinYin
.Sort.Apply
End With
'iTabDaten.ListColumns(LetzteS).Delete
iTabDaten.DataBodyRange.Columns(iDatenLS).ClearContents
Call SpezialfilterDatum1
Range("A1").Select
End Sub

Sub SpezialfilterDatum1(Optional Kriterien As Boolean)
Dim Von As Date, Bis As Date
Dim wsDaten As Worksheet
Dim iTabDaten As ListObject
Set wsDaten = ThisWorkbook.Worksheets("Daten")
Set iTabDaten = wsDaten.ListObjects("Daten_IntelligenteTabelle")
'Filter Löschen
If wsDaten.AutoFilterMode = True Then If wsDaten.FilterMode = True Then wsDaten.AutoFilter. _
ShowAllData
If Kriterien Then 'Wenn True Übergeben dann Kriterien bereich erstellen
Von = wsDaten.OLEObjects("TextBox1").Object.Value 'Von
Bis = wsDaten.OLEObjects("TextBox2").Object.Value 'Bis
wsDaten.Range("AF23:AG23").Value = "Von"
wsDaten.Range("AH23:AI23").Value = "Bis"
'1 Kriterienzeile
wsDaten.Range("AF24").Value = ">=" & CLng(Von)
wsDaten.Range("AH24").Value = ">=" & CLng(Von)
wsDaten.Range("AG24").Value = "=" & CLng(Bis)
'2 Kriterienzeile
wsDaten.Range("AG25").Value = ">=" & CLng(Von)
wsDaten.Range("AH25").Value = "=" & CLng(Von)
wsDaten.Range("AG26").Value = "=" & (Von)
wsDaten.Range("AG30,AH31,AG32").Value = "=" & (Bis)
wsDaten.Range("AF32").Value = "
Danke und Grüße
Andreas
Anzeige

309 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige