Makro für makierte Zeilen sortieren
#1
Ich bräuchte ein Makro welches mir nur makierte Zeilen von klein auf groß sortiert, da hier die Filter nicht so funktionieren.

Kriterium ist Tour und Abladestelle diese kompletten Zeilen sollen von klein auf groß sortiert werden und die ohne Tour nach unten sortieren.

Testdatei siehe Anhang.

Danke im voraus


Angehängte Dateien
.xlsx   Testdatei2.xlsx (Größe: 14,93 KB / Downloads: 10)
Antworten Top
#2
Hallöchen,

zuerst mal eine Frage. Kannst Du so filtern, dass nur die markierten Zellen sichtbar sind? Dann wäre es einfach, da werden nur die sichtbaren sortiert.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#3
Hallo Mellow,

du solltest mal über deinen Aufbau der Liste nachdenken. Damit wirst du früher oder später Probleme bekommen.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#4
Hi,

Zitat:du solltest mal über deinen Aufbau der Liste nachdenken

wie gesagt, dann würde auch das Filtern sicher funktionieren - z.B. mit dem Datum in Spalte A zu jeder Zeile.

Wenn Du innerhalb eines kompletten Tages sortieren willst, ist der Filter irrelevant. Markiere die Daten eines Tages und sortiere dann. Es kommt zwar eine Frage, ob Du den Bereich erweitern willst, aber man muss ja nicht alles machen wonach man gefragt wird Smile Du kannst dann beliebig nach Kunde, Nummer oder welcher Spalte auch immer sortieren.

Wenn Du nur einzelne Zeilen eines Tages umsortieren willst und der Rest unsortiert bleiben soll, - da können auch unbetroffenen Zeilen zwischen den Markierungen sein - , ist mir der Sinn nicht ganz klar.

Du hast jetzt

Testkunde
aaabbbb
bbbbbbb
cccccaaa
gggggggggg
fffffff
ccccdeeeeee

und wenn ich Testkunde und gggggggggg markiere wäre das Ergebnis so

gggggggggg
aaabbbb
bbbbbbb
cccccaaa
Testkunde
fffffff
ccccdeeeeee

Zitat:Damit wirst du früher oder später Probleme bekommen.

vielleicht auch früher oder später eine Lösung Smile
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#5
Hallo Kollegen

ich habe mal eine höfliche Frage an euch.  Wie bekommt ihr das Sortieren der Intelligenten Tabelle hin???

Ich kann machen was ich will, markiere ich den Bereich von  A5: U14, alle Spalten, oder nur  B5: B14  und sage welche Spalten sortiert werden sollen haut's mir die ganzen Daten durcheinander!  Die Zeilen mit Datum stehen alle am Schluss und die Kunden sind oben.  Ich habe es auch mit VBA probiert, mir gelingt es nicht den praezise angegebenen Bereich zu sortieren.  Was mache ich falsch, oder gibt es da einen besonderen Trick beim Sortieren?

mfg Gast 123
Antworten Top
#6
Hallo mellow,
Sub MarkierteZeilenSortieren()
With Selection
If .Parent.ListObjects.Count Then
.Parent.ListObjects(1).Unlist
End If
If .Columns.Count = .Parent.Columns.Count And .Rows.Count > 1 Then
.Sort .Cells(1, 6), xlAscending, .Cells(1, 7), , xlAscending, , , xlNo
End If
End With
End Sub
Gruß Uwe
Antworten Top
#7
Der Code funktioniert vielen Dank
Antworten Top
#8
Jetzt hab ich ein anderes Problem , da ich die Rohdaten per Sverweis aus einem anderen Tabellenblatt hole , gehen mir nach der Sortierung beim einfügen einer Zeile die Sverweis formatierung fliegen. Diese werden dann nicht mit übernommen Huh
Antworten Top
#9
Hallöchen,

mit sverweis holst Du doch Daten und keine Formate?

Hier mal noch der Code von Uwe, erweitert mit der Wiederherstellung der Tabelle. Die Tagesübershriftenformate sind dann aber weg Sad

Code:
Sub MarkierteZeilenSortieren()
Dim rngList As Range, strList As String
  With Selection
    If .Parent.ListObjects.Count Then
      Set rngList = .Parent.ListObjects(1).Range
      strList = .Parent.ListObjects(1).Name
      .Parent.ListObjects(1).Unlist
    End If
    If .Columns.Count = .Parent.Columns.Count And .Rows.Count > 1 Then
      .Sort .Cells(1, 6), xlAscending, .Cells(1, 7), , xlAscending, , , xlNo
    End If
  End With
  ActiveSheet.ListObjects.Add(xlSrcRange, rngList, , xlYes).Name = strList
End Sub
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#10
Zitat:mit sverweis holst Du doch Daten und keine Formate?

Das ist richtig per Sverweis durch die Nummer hole ich mir sämtlichen Daten, wie Kunde , Ort , Straße aus einem anderen Tabellenblatt. Das funktioniert auch alles


Aber nach dem Sortieren geht es nicht mehr, die kompletten Sverweise sind weg.
Auch wenn ich eine neue Zeile einfüge.

@[b]schauan [/b]

Der Code für zum gleichen Ergebnis
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste