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

select entfernen? Breich verkleinern

select entfernen? Breich verkleinern
21.08.2015 15:12:05
Thomas
Hallo Excelfreunde,
ich habe das untenstehende makro aufgezeichnet.
Es soll von F8 bis zur letzten gefüllten zelle in spalte F aufsteigend sortieren. (in f7 steht die überschrift). in den zeilen f1 bis f6 stehen auch daten die nicht davon berühert werden dürfen.
Hier ist es wichtig das nur die spalte F sortiert wird die Spalten rechts und links dürfen nicht mit sortiert werden .
Dies makro funktioniert auch aber mich stören diese Zeilen Range("F7:F1048576").Select und SetRange Range("F7:F1048576") erstmal habe ich wieder das blöde select was ich nicht machen soll und dann benötige ich ja nicht die gesamten 1048576 zeilen. So weit ich es bis jetzt verstanden hab soll man so etwas nicht machen ( ressourcenverschwendung ).
habe es mit Range("F7:F" & .UsedRange.Rows.Count).select versucht dies geht aber auch nicht. Und selecht ist auch wieder drin.
weiss jemand wie ich es besser machen könnte?
liebe grüsse thomas
Range("F7:F1048576").Select
ActiveWorkbook.Worksheets("Auswertung").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Auswertung").Sort.SortFields.Add Key:=Range _
("F7"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("Auswertung").Sort
.SetRange Range("F7:F1048576")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: select entfernen? Breich verkleinern
21.08.2015 15:32:58
Daniel
Hi
selektieren ist nicht notwendig.
man muss sich nur angewöhnen, die Zellbereiche immer vollständig, dh mit Angabe es Workbooks und des Worksheets zu referenzieren, auch wenn der Zellbezug innerhalb einer Formel steht.
um den schreibaufwand in Grenzen zu halten, kann man die WITH-Klammer verwenden.
in der WITH-Klammer wird am Anfang ein Objekt (z.B. das Worksheet) definert. Wenn in der Folge ein Ausdruck mit einem Punkt beginnt, setzt VBA dann automatisch das bei WITH definierte Objekt an dieser stelle ein.
in deinem Fall etwas so:

With ActiveWorkbook.worksheets("Auswertung")
.Sort.Sortfields.Clear
.Sort.Sortfields.Add Key:=.Range("F7"), SortOn:=xlSortonvalues, _
Order:=xlascending, DataOption:=xlsortnormal
.Sort.SetRange .Range(.Cells(7, "F"), .Cells(.Rows.count, "F").end(xlup))
.Sort.Header:=xlno
.Sort.Matchcase = False
.Sort.Orientation:=xlTopToBottom
.Sort.SortMethod = xlPinYin
.Sort.Apply
End with
allerdings verwende ich in VBA immer noch die alte 2003-Schreibweise fürs sortieren, weil die deutlich einfacher ist (wenn man sie selber schreibt)
With ActiveWorkbook.Sheets("Auswertung")
With .Range(.Cells(7, "F"), .Cells(.Rows.count, "F").End(xlup))
.Sort Key1:=.Cells(1, 1), order1:=xlascending, header:=xlno
End with
end With
Gruß Daniel

Anzeige
super es passt
21.08.2015 16:32:21
Thomas
Hallo Daniel,
hab vielen dank für die sehr schnellen und guten tipps und vorschläge. Es passt genau.
Ich werde auch dein 2003 vorschlag einbauen. Dies kann ich wenigstens nachverfolgen.
hab vielen dank.
liebe grüsse thomas

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige