Microsoft Excel

Herbers Excel/VBA-Archiv

Sortierung mit Cells | Herbers Excel-Forum


Betrifft: Sortierung mit Cells von: Joni
Geschrieben am: 21.01.2010 00:08:47

Hi,

wie kriege ich es hin, dass ich die Sortierung mit Cells machen kann?

klappt nicht:
Sheets("Liste").Range(Cells(l, m), Cells(j - 1, m + 7)).sort Key1:=Range(Cells(l, m + 7)), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal

funktioniert:
Sheets("Liste").Range(Cells(l, m), Cells(j - 1, m + 7)).sort Key1:=Range("H6"), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal

Auch mit .Adress hinten dran klappt es nicht. Ich kriege immer einen Fehler 400.

Danke für eure Hilfe.

Gruß Joni

  

Betrifft: AW: Sortierung mit Cells von: Gerd L
Geschrieben am: 21.01.2010 00:19:47

Hallo Joni!

Sheets("Liste") ist wohl zur Zeit "in". :-)
sort Key1:=Range(Cells(l, m + 7)), ...................

so:
sort Key1:=Cells(l, m + 7), ...................


sort Key1:=Range(Cells(l, m + 7), Cells(l, m + 7)), ................... wäre zwar ebenfalls möglich,
ist hier aber überflüssig.


Gruß
Gerd


  

Betrifft: AW: Sortierung mit Cells von: Joni
Geschrieben am: 21.01.2010 10:46:57

Hallo Gerd,

Daniel hat mich schon erleuchtet. Kommt auf das Gleiche raus.

Danke.

Gruß Joni


  

Betrifft: AW: Sortierung mit Cells von: Daniel
Geschrieben am: 21.01.2010 00:30:33

Hi

also zunächst einmal:

wenn du eine Range über 2 Cells definierst und das Sheet mit angibst, dann muss das Sheet auch vor den beiden Cells stehen, dh.

Range(Sheets(xy).Cells(a,b), Sheets(xy).Cells(c,d))

sollte der Code im Modul eines Tabellenblatts stehen, kann auch ggf das erforderlich sein:
Sheets(xy).Range(Sheets(xy).Cells(a,b), Sheets(xy).Cells(c,d))

das gleiche gilt für den SORT-Befehl. Wenn du bei SORT das Tabellenblatt angibst, dann musst du das bei den .KEY-Parametern wiederholen:
Sheets(xy).Range("A1:C100").Sort Key1:=Sheet(xy).Cells(1,1), ...
dein og. Code kann in beiden Fällen nur dann funktionieren, wenn das Sheet("Liste") aktiv ist. Falls ein anderes aktiv sein sollte, gibts Probleme.

jetzt zu dem Unterschied zwischen deinen beiden Versuchen:
im unteren Fall wird klar nach der Spalte H sortiert.

im oberen Fall hängt die Sortierspalte davon ab, welcher Wert in der Zelle Cells(l, m + 7) steht.
Exel nimmt den Inhalt dieser Zelle als Parameter für die Range-Funktion, dh das ganze kann nur funktionieren, wenn in Cells(l, m + 7) eine gültige Zelladdresse wie "H6" steht oder ein vorhandener Name.

Wenn du allerdings nach der Spalte m+7 sortieren willst, muss dein SORT-Befehl so aussehen:
Sheets("Liste").Range(Cells(l, m), Cells(j - 1, m + 7)).sort Key1:=Sheet("Liste").Cells(l, m + 7), order1:=...
Gruß, Daniel


  

Betrifft: AW: Sortierung mit Cells von: Joni
Geschrieben am: 21.01.2010 10:37:56

Hallo Daniel,

danke für deine Infos. Mir war soweit alles klar. Mein Fehler war das Range bei der Cells-Angabe des Key1.

Range nur bei fixer Angabe => Key1:=Range("H6")
kein Range bei relativer Angabe => Key1:=Sheets("Liste").Cells(l, m + 7)

Jetzt funktioniert es.

Nochmal Danke!

Gruß Joni


Beiträge aus den Excel-Beispielen zum Thema "Sortierung mit Cells"