Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Fehler nach Befehlen umstellen

Forumthread: 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
Anzeige

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
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige