Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1728to1732
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

Range definieren

Range definieren
02.01.2020 10:22:10
tursiops
Hallo und ein gesundes neues Jahr!
Ich möchte mehrere dynamische Bereiche in einem Tabellenblatt separat sortieren lassen.
Die erste und letzte Zelle des Bereiches (jeweils in der Kopf- und Fußzeile) haben bereits definierte Namen.
Kopf und Fußzeile sollen jedoch nicht mit sortiert werden.
Mit der Kombination von .range und .offset haben ich allerdings etwas Probleme:
Public Sub Sort_GWV_300020()
Dim rng1 As Range
Dim rng2 As Range
Dim NewRng As Rang
With ThisWorkbook.Worksheets("GWV")
Set rgn1 = Range("GWV_300020_Start").offset(1;0).select
Set rng2 = Range("GWV_300020_Ende").offset(-1;0).select
Set NewRng = .Range(rng1.Address & ":" & rng2.Address)
'hier soll der der eigentliche Code hin (Bereich nach Spalte K sortieren)
End Sub
Kann mir jemand dabei helfen?
Gruß Frank

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Range definieren
02.01.2020 10:26:31
Hajo_Zi
Hall Frank,
Du hast keinen Leerspalten und Leerezeilen. Es muss nur die Zelle Links oben angegeben werden.
Sortieren benutze Makrorecorder.

AW: Range definieren
02.01.2020 10:39:07
Daniel
Hi
1. das Parametertrennzeichen ist in VBA immer das Komma, nicht das Semikolon.
2. keine Selektion bei einer Variablenzuweisung.
 Set rgn1 = Range("GWV_300020_Start").offset(1, 0)
Gruß Daniel
AW: Range definieren
02.01.2020 10:43:49
Daniel
3. Man kann Rangevariablen auch direkt für die Definition einer neuen range verwenden, ohne über die Adresse zu gehen.
Dann muss man auch das Tabellenblatt nicht nochmal angeben, weil das schon in den beiden Ranges steckt:
Set NewRng = Range(rng1, rng2)
Gruß Daniel
Anzeige
AW: Range definieren
02.01.2020 11:53:59
GerdL

Sub l()
With ThisWorkbook.Worksheets("GWV")
.Range(Range("A1"), .Range("L20").Offset(-1)).Sort Key1:=.Range("K1"), Order1:=xlAscending,  _
Header:=xlYes
End With
End Sub

Moin!
Gruß Gerd
AW: Range definieren
02.01.2020 13:30:26
tursiops
Hallo!
Ich habe mich nach HaJo´s Antwort nochmal selbst damit beschäftigt.
Das ist meine aktuelle Lösung. Funktioniert bisher super:
Public Sub GWV_Sort_Kfz_300020() 'sortiert den Bereich  alphabetisch nach Fahrzeugen
Dim rngBereich As Excel.Range
With ThisWorkbook.Worksheets("GWV")
Set rngBereich = .Range("GWV_300020_Anfang:GWV_300020_Ende")
rngBereich.Select
Selection.Sort Key1:=Intersect(Selection, Columns("F")), Order1:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal                              'sortiert
Range("GWV_300020_Anfang").Select
ActiveCell.Offset(1, 6).Select
End With
End Sub
Vielen Dank für Eure Hilfe!
Gruß Frank
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige