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

Fehler nach Befehlen umstellen

Fehler nach Befehlen umstellen
Jürgen
Hallo liebe Helfer,
habe ein kleines Problem: ein markierter Bereich soll nach Spalte A sortiert werden.
Ich habe meinen Originalcode (aufgezeichneter Code):
Range("A3:AM233").Select
ActiveWorkbook.Worksheets("SMD-Liste").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("SMD-Liste").Sort.SortFields.Add Key:=Range( _
"A3:A233"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("SMD-Liste").Sort
.SetRange Range("A3:AL233")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
etwas umgestellt. Und zwar soll der Bereich der markiert wird flexibel sein. Also lasse ich die letzte Zeile sowie Spalte ermitteln. Nun bringt er mir aber beim .Apply Befehl einen Fehler.
Neuer Code:
lngLetzteSpalte = Cells(1, Columns.Count).End(xlToLeft).Column
strBuchstabe = Replace(Cells(1, lngLetzteSpalte).Address(0, 0, 1, 0), 1, "")
letzteZeile = Cells(Rows.Count, 1).End(xlUp).Row
Range("A3:" & strBuchstabe & letzteZeile).Select
ActiveWorkbook.Worksheets("SMD-Liste").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("SMD-Liste").Sort.SortFields.Add Key:=Range("A3:" & strBuchstabe & letzteZeile), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("SMD-Liste").Sort
.SetRange Range("A3:" & strBuchstabe & letzteZeile)
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Ich erhalte folgenden Fehler:
Laufzeitfehler 1004:
Der Sortierbezug ist ungültig. Überprüfen Sie, ob sich der Sortierbezug innerhalb der
markierten Daten befindet und ob das Feld 'Sortieren nach' nicht den gleichen Bezug enthält oder leer ist.
Danke im voraus
Jürgen

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Fehler nach Befehlen umstellen
20.03.2012 02:58:52
fcs
Hallo Jürgen,
für den Parameter "Key" ist es normal ausreichend, wenn die 1. Zelle in der Spalte, nach der sortiert werden soll, als Bezug angegeben wird.
Außerdem muss das zu sortierende Blatt das aktive Blatt sein oder die Zellreferenzen alle sauber angegeben sein.
Wenn ein Zellbereich berechnet wird ist es meist einfacher mit Cells(Zeile, Spalte) zu Arbeiten als mit Range("A3:M22").
Gruß
Franz
Sub SortTestNeu()
Dim wks As Worksheet
Dim lngLetzteSpalte As Long, letzteZeile As Long
Set wks = ActiveWorkbook.Worksheets("SMD-Liste")
With wks
lngLetzteSpalte = .Cells(1, .Columns.Count).End(xlToLeft).Column
letzteZeile = .Cells(.Rows.Count, 1).End(xlUp).Row
'    .Range(.Cells(3, 1), .Cells(letzteZeile, lngLetzteSpalte)).Select 'nicht erforderlich!!
With .Sort
With .SortFields
.Clear
.Add Key:=wks.Range("A3"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
End With
.SetRange wks.Range(wks.Cells(3, 1), wks.Cells(letzteZeile, lngLetzteSpalte))
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End With
End Sub

Gruß
Franz
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige