Anzeige
Archiv - Navigation
1520to1524
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

definierte Namen für Sortierung mit VBA verwenden

definierte Namen für Sortierung mit VBA verwenden
03.11.2016 11:23:54
tursiops
Hallo!
Ich möchte meine Tabelle per Makro sortieren. Durch das spätere Einfügen oder Löschen von Zellen kommt es jedoch immer wieder zu Problemen. Nun habe ich Namen in diesem Blatt definiert, die die Auswahl des zu sortierenden Bereiches erleichtern sollen. Allerdings weiß ich nicht, wie ich die Namen im Code verwenden muss. Vorgestellt habe ich es mir so ungefähr:
Sub sort1()
' Makro zum sortieren der GWV Übersicht nach Einrichtung
Rows("Beginn_GWV_Zeile:End_GWV_Zeile").Select
ActiveWorkbook.Worksheets("GWV").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("GWV").Sort.SortFields.Add Key:=Range("Beginn_GWV_SST:End_GWV_SST" _
), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("GWV").Sort.SortFields.Add Key:=Range("Beginn_GWV_Fahrer: _
End_GWV_Fahrer"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("GWV").Sort
.SetRange Range("Beginn_GWV:End_GWV")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
Ich hoffe, jemand hat hier einen Tipp für mich. über die Suche haben ich nichts hilfreiches finden können.
Gruß Frank

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

Betreff
Datum
Anwender
Anzeige
definierte Namen für Sortierung mit VBA verwenden
03.11.2016 11:55:37
Michael
Hi Frank,
im Prinzip so:
Option Explicit
Sub sortieren()
' Hier hat der komplette Bereich einen Namen
Range("meinBereich").Sort _
key1:=Range("meinBereich")(1), order1:=xlAscending, _
key2:=Range("meinBereich")(2), order2:=xlAscending, Header:=xlNo
End Sub
Sub oderSo()
' Hier haben nur die Zeilen-Nummern je einen Namen
Dim rSort As Range
Dim vonZeile As Long, bisZeile As Long
vonZeile = 2
bisZeile = 4
Set rSort = Intersect(Rows(vonZeile & ":" & bisZeile), ActiveSheet.UsedRange)
' Nur zur Ansicht mal: von wo bis wo geht der Bereich?
MsgBox rSort.Address
' Dann analog:
rSort.Sort _
key1:=rSort(1), order1:=xlAscending, _
key2:=rSort(2), order2:=xlAscending, Header:=xlNo
End Sub

wobei bei den keys die oberste Zelle/Zeile des Bereichs genügt; hier habe ich mir zunutze gemacht, daß man einen Bereich "indiziert" ansprechen kann; Du kennst ja wahrscheinlich
msgbox range("meinBereich").Count, das gibt die Anzahl der Zellen des Bereichs zurück; gezählt wird von links oben aus zuerst (immer wieder) von links nach rechts und dann von oben nach unten.
Mit Range("meinBereich")(1) ist also die linkeste Spalte des Bereichs gemeint: Du brauchst das hier nur auf Deine Spalten anpassen, nach denen sortiert werden soll.
Schöne Grüße,
Michael
Anzeige
AW: definierte Namen für Sortierung mit VBA verwenden
03.11.2016 13:02:58
tursiops
Hallo!
Super!!! Vielen Dank für die Hilfestellung, damit werde ich zurechtkommen.
Danke Frank
freut mich,
03.11.2016 13:54:08
Michael
Frank,
danke für die Rückmeldung & happy exceling,
Michael

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige