Anzeige
Archiv - Navigation
1184to1188
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

sortieren
sigi
Hallo,
ich habe ein Problem mit dem sortieren einer Tabelle
es soll ab Zeile 22 Spalte A bis G sortiert werden.
Sub SortR()
Dim Endrow%
Dim WB As Variant
Dim wks As Object
WB = ActiveWorkbook.Name
Set wks = Workbooks(WB).Sheets("Rechnung")
Endrow = wks.Cells(Rows.Count, 7).End(xlUp).Row
With wks
.Select
Range(.Cells(22, 1), .Cells(Endrow, 7)).Select
wks.Sort.SortFields.Clear
wks.Sort.SortFields.Add Key:=Range(.Cells(22, Endrow), .Cells(7, Endrow)) _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
End With
With wks.Sort
.SetRange Range(.Cells(22, 1), .Cells(Endrow, 7))
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
Danke, Gruß Sigi

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: sortieren
09.11.2010 00:13:55
fcs
Hallo Sigi,
etwa in diese Richtung ändern.
Bei dir waren in Cells die Angaben zu Zeilen und Spalten zum Teil vertauscht.
Gruß
Franz
Sub SortR()
Dim Endrow&
Dim WB As Variant
Dim wks As Object
WB = ActiveWorkbook.Name
Set wks = Workbooks(WB).Sheets("Rechnung")
Endrow = wks.Cells(Rows.Count, 7).End(xlUp).Row
With wks
.Select
Range(.Cells(22, 1), .Cells(Endrow, 7)).Select
wks.Sort.SortFields.Clear
'Spalte mit Zelle nach der sortiert werden soll
wks.Sort.SortFields.Add Key:=.Cells(22, 7) _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
End With
With wks.Sort
.SetRange wks.Range(wks.Cells(22, 1), wks.Cells(Endrow, 7))
.Header = xlYes   'Excel besser nicht raten lassen
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub

Anzeige
AW: sortieren
09.11.2010 02:20:56
sigi
Hallo Franz,
danke für Deine Hilfe doch leider funktioniert das sortieren nicht.
Die Zellen werden zwar markiert, doch nicht nach Spalte G sortiert, bzw.garnicht sortiert.
Wenn ich nun die Spalte nach der sortiert werden soll so umschreibe
wks.sort.SortFields.Add Key:=Range(.Cells(22,7), .cells(7, Endrow)) _
dann wird der Code bei ".Apply" unterbrochen.
Zur weiteren Erklärung:
Die Spalte "G" ist eine Hilfsspalte Und kann folgende Werte haben welche sortiert werden soll
5
2
1,1
3
5
2,1
usw.
Danke für Deine Hilfe
Gruß
Sigi
Anzeige
AW: sortieren
09.11.2010 20:28:32
fcs
Hallo Sigi,
in einer von mir erstellten Testdatei sortiert der von mir gepostete Code die Daten des Bereichs nach Spalte 7.
In dieser Zeile:
wks.sort.SortFields.Add Key:=Range(.Cells(22,7), .cells(7, Endrow)) _
wird als Range üblicherweise eine Zelle in der 1. Zeile der zu sortierenden Daten angegeben.
Haben die Daten in der 1. Zeile Spaltenüberschriften, dann ist dies der Spaltenname nach dem sortiert werden soll.
Achte unbedingt darauf dass in deinem Code die Objektreferenzen korrekt gesetzt werden. Einmal zum Worksheet, einmal zum Sort-Objekt.
Gruß
Franz
Anzeige
AW: sortieren
10.11.2010 06:28:28
sigi
Hallo Franz,
hier nochmals mein Code, leider funktioniert er bei mir nicht.
In Anlage meine Datei.
https://www.herber.de/bbs/user/72224.xlsm
Tut mir leid wenn ich Dich so nerve!
Gruß
Sigi
AW: sortieren
11.11.2010 21:00:37
fcs
Hallo Sigi,
so funktiert er. Ich hab noch ein paar nicht unbedingt notwendige Objektzuweisungen weggelassen.
Gruß
Franz
Sub SortR()
Dim Endrow&
Dim wks As Worksheet
Set wks = ActiveWorkbook.Sheets("Rechnung")
With wks
.Activate
Endrow = .Cells(.Rows.Count, 7).End(xlUp).Row
With .Sort
.SortFields.Clear
.SortFields.Add Key:=wks.Cells(22, 7), _
SortOn:=xlSortOnValues, Order:=xlAscending, _
DataOption:=xlSortNormal
.SetRange wks.Range(wks.Cells(22, 1), wks.Cells(Endrow, 7))
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End With
Range("A22").Select
End Sub

Anzeige
AW: sortieren
11.11.2010 20:21:15
Gerold
Hallo Sigi
So müßte es gehen
Sub SortR()
Dim Endrow&
Dim WB As Variant
Dim wks As Object
WB = ActiveWorkbook.Name
Set wks = Workbooks(WB).Sheets("Rechnung")
Endrow = wks.Cells(Rows.Count, 7).End(xlUp).Row
With wks
.Select
.Sort.SortFields.Clear
'Sortieren nach Spalte G
.Sort.SortFields.Add Key:=wks.Range(.Cells(22, 7), .Cells(Endrow, 7)) _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
'Bereich komplett mit Überschrift
.Sort.SetRange wks.Range(wks.Cells(21, 1), wks.Cells(Endrow, 7))
.Sort.Header = xlYes
.Sort.MatchCase = False
.Sort.Orientation = xlTopToBottom
.Sort.SortMethod = xlPinYin
.Sort.Apply
End With
Range("A22").Select
End Sub
Mfg Gerold
Anzeige
AW: sortieren
12.11.2010 04:40:40
sigi
Hallo Ihr Spezialisten
danke für Eure Hilfe funktioniert genauso wie ich es wollte.
Gruß
Sigi

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige