Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1716to1720
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

Schleife Bereichssortierung Spalten variabel

Schleife Bereichssortierung Spalten variabel
22.10.2019 16:00:16
Hans
Hi, habe nur rudimentäre Kenntnisse in VBA. Ich suche eine Lösung um eine Schleife zu generieren. Der unten angehängte Code zeigt das was ich machen möchte für die ersten beiden Spaltenbereiche. Ziel ist es dies über das gesamte Arbeitsplatz zu machen. Im Grunde genommen also eine Schleife mit Spalte +6 (aus A5:H510 wird I5:P:510 etc). Hat jemand eine Idee?
Sub Sort2()
' Sort Makro
Range("A5:G510").Select
ActiveWorkbook.Worksheets("Core data").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Core data").Sort.SortFields.Add Key:=Range( _
"F6:F510"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
ActiveWorkbook.Worksheets("Core data").Sort.SortFields.Add Key:=Range( _
"D6:D510"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("Core data").Sort
.SetRange Range("A5:G510")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("H5:N510").Select
ActiveWorkbook.Worksheets("Core data").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Core data").Sort.SortFields.Add Key:=Range( _
"M6:M510"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
ActiveWorkbook.Worksheets("Core data").Sort.SortFields.Add Key:=Range( _
"K6:K510"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("Core data").Sort
.SetRange Range("H5:N510")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schleife Bereichssortierung Spalten variabel
22.10.2019 21:57:00
Piet
Hallo Hans
eine Erleichterung zum Programmieren ist hier der GoSub Befehl, um im eigenen Makro ein internes Unterprogramm aufzurufen. Der Befehl wird im Forum selten verwendet, ist aber m.E. sehr effektiv'
Du legst vorher die Adressen fest, und musst das Gosub Programm immer mit Return beenden!!
Das Sortierprogramm brauchst du so nur einmal zu schreiben, und aenderst nur die Adressen!
mfg Piet
Sub Sort2()
Dim SortBereich As String
Dim KeyAdr1 As String, KeyAdr2 As String
' Sort Makro
'Sortierschlüssel 1,2,3 festlegen
KeyAdr1 = "F6:F510"   'Sortierfeld 1
KeyAdr2 = "D6:D510"   'Sortierfeld 2
'Sortierbereich festlegen, GoSub starten
SortBereich = "A5:G510":  GoSub sort
KeyAdr1 = "M6:M510"   'Sortierfeld 1
KeyAdr2 = "K6:K510"   'Sortierfeld 2
'Sortierbereich festlegen, GoSub starten
SortBereich = "H5:N510":  GoSub sort
Exit Sub
sort:  'Unterprogramm zum sortieren
With ActiveWorkbook.Worksheets("Core data")
.sort.SortFields.Clear
.sort.SortFields.Add Key:=Range(KeyAdr1), SortOn:=xlSortOnValues, _
Order:=xlAscending, DataOption:=xlSortNormal
.sort.SortFields.Add Key:=Range(KeyAdr2), SortOn:=xlSortOnValues, _
Order:=xlDescending, DataOption:=xlSortNormal
With .sort
.SetRange Range(SortBereich)
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Return
End With
End Sub

Anzeige
AW: Schleife Bereichssortierung Spalten variabel
23.10.2019 07:31:09
Hans
Danke, aber wird so auch das ganze Sheet durchgegangen? Mir geht es insbesondere darum, dass nach H5:N510 auch O5:U510, V5:AB510 etc. sortiert werden. Das ist mit deinem Macro nicht abgedeckt oder?
AW: Schleife Bereichssortierung Spalten variabel
23.10.2019 08:30:37
Daniel
Hi
Dim x AS long
For x = 1 to cells.specialcells(xlcelltypelastcell).column step 8
Hier dann die Programmierung für das Sortieren mit
... .Sortfields.add key:=cells(1, x + 5)
... .SetRange = Cells(1, x).resize(510, 8)
Next
Gruß Daniel

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige