Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Problem beim Sortieren über VBA

Forumthread: Problem beim Sortieren über VBA

Problem beim Sortieren über VBA
24.10.2024 18:17:14
Frank H.
Hallo Zusammen,

Mittels folgendem Code:

Dim a, b, c As Byte

a = 66
b = cbSaison.ListIndex * 49
c = a + b

Dim rkey1 As Range, rkey2 As Range, rkey3 As Range

Range(Cells(3, c + 25), Cells(39, c + 47)).Select

rkey1 = Range(Cells(4, c + 30))
rkey2 = Range(Cells(4, c + 33))
rkey3 = Range(Cells(4, c + 31))

Range("CM3:DI39").Select
Selection.Sort Key1:=rkey1, Order1:=xlDescending, Key2:= _
rkey2, Order2:=xlDescending, Key3:=rkey3, Order3 _
:=xlDescending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
False, Orientation:=xlTopToBottom

möchte ich gern, immer abhängig von dem Kombifeld - cbSaison - sortieren.

Wenn ich den Befehl aufrufe, bekomme ich die Fehlermeldung:

"Die Methode 'Range' für das Objekt '_Global' ist fehlgeschlagen"

Wird jemand aus meinem Geschreibe schlau und kann mir helfen?

Vorab Danke und liebe Grüße
Frank H.
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Problem beim Sortieren über VBA
24.10.2024 18:41:32
daniel
Hi
bitte beschreibe den Fehler so genau wie möglich.
hier fehlt beispielsweise dein Hinweis, in welcher Programmzeile der Fehler passiert.
das erleichtert es uns, den Fehler zu finden, vorallem wenn du keine Beispieldatei mitlieferst, mit der wir das selber ausprobieren können.

was so als erstes auffällt:
in dieser Zeile (und den vergleichbaren) stecken zwei Fehler:
rkey1 = Range(Cells(4, c + 30))

1. rkey1 ist als Range- und damit als Objektvariable deklariert und soll auch einen Objektwert (Zelle) zugewiesen bekommen.
das erfordert immer den Befehl: SET rkey1 = ...
nur einfache Wertvariablen werden ohne speziellen Befehl zugewiesen (der Befehl wäre LET, aber den lässt man in der Regel weg), bei Objektvariablen IMMER mit SET.

2. wenn du eine Einzelne Zelle ansprechen willst, dann geht das direkt über CELLS, das Range ist hier falsch:
Set rkey1 = Cells(4, c + 30)


wenn du Range nur mit einem Parameter "fütterst" dann muss dies ein Text sein, der der Adresse des Zellbereichs entspricht.
deine Schreibweise wäre dann korrekt: wenn in der Zelle Cells(4, c+30) die Adresse der Zelle, die du zuweisen willst, als Textwert steht (also in dieser Zelle steht dann sowas wie "A1" oder "AD4"
wenn du jedoch diese Zelle zuweisen willst, dann entweder wie gezeigt ohne Range, oder dann so: set rKey1 = Range(Cells(4, c + 30).Address), was aber unnötiger aufwand ist.

Gruß Daniel
Anzeige
AW: Problem beim Sortieren über VBA
24.10.2024 18:51:35
Frank H.
Hallo Daniel,

habe deine Tipps umgesetzt und wie von Zauberhand funzt es nun bestens!
VBA ist halt keine Magie, aber mein Wissen ist halt noch begrenzt.
Dir, also allerherzlichsten Dank!

Schönen Abend dir und liebe Grüße
Frank H.
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige