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

Laufzeitfehler 438 .SetRange

Laufzeitfehler 438 .SetRange
22.04.2013 13:29:46
Katharina
Hallo zusammen,
leider werde ich auch aus alten Beiträgen im Forum nicht schlau. In der Zeile .SetRange bleibt das Makro immer mit Laufzeitfehler 438 hängen.
Option Explicit
Dim i As Long, z As Long, y As Long, x As Long, c As Long
Dim wks_gr As Worksheet
Set wks_gr = Worksheets("general_report")
'benutzte Zeilenzahl ermitteln
z = Worksheets("general_report").Cells(Rows.Count, 1).End(xlUp).Row
'benutzte Spaltenzahl ermitteln
c = Worksheets("general_report").Cells(1, Columns.Count).End(xlToLeft).Column
'Spalte Time Spent finden
y = Worksheets("general_report").Application.Match("Time Spent", Worksheets("general_report").Rows(1), 0)
wks_gr.Sort.SortFields.Add Key:=wks_gr.Cells(1, y + 1), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortTextAsNumbers
With ActiveWorkbook.Worksheets("general_report").Sort
.SetRange = wks_gr.Range(wks_gr.Cells(1, 1), wks_gr.Cells(z, c))
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Vielleicht bin ich auch einfach mal wieder zu blind.
Vielen Dank für eure Hilfe.
Gruß,
Katharina

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitfehler 438 .SetRange
22.04.2013 14:32:48
Beverly
Hi Katharina,
deiser Code gilt für die Excelversionen ab 2007. Wenn du also tatsächlich Excel2003 benutzt, dann ist es das beste, wenn du das Sortieren einmal von Hand aufzeichest und deine Variablen dann in diesen aufgezeichneten Code einbindest.


AW: Laufzeitfehler 438 .SetRange
22.04.2013 14:41:44
Katharina
Hallo Karin,
da hast du natürlich recht. Entschuldigung, habe mich wohl bei der Version verklickt, ohne es zu merken.
Beim Aufzeichnen bekomme ich immer nur die tatsächlichen Zellbezüge, ich brauche es aber über die Variablen.
z.B. With ActiveWorkbook.Worksheets("general_report").Sort
.SetRange Range("A1:BF10")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
In älteren Forumsbeiträgen hatte ich es so wie codiert gesehen. Nur leider funktioniert es nicht.
Gruß,
Katharina

Anzeige
AW: Laufzeitfehler 438 .SetRange
22.04.2013 16:14:37
Beverly
Hi Katharina,
   With wks_gr.Sort
.SortFields.Clear
.SortFields.Add Key:=Range(Cells(1, y + 1), Cells(z, y + 1)), SortOn:=xlSortOnValues, _
Order:=xlAscending, DataOption:=xlSortTextAsNumbers
.SetRange Range(Cells(2, 1), Cells(z, c))
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With


Klappt!!! - Eine Frage noch
23.04.2013 10:54:43
Katharina
Hallo Karin,
klappt perfekt. Vielen Dank.
Kannst du mir vielleicht auch noch erklären, warum mein Code nicht funktioniert hat. Kann es leider nicht nachvollziehen.
Viele Grüße,
Katharina

Anzeige
AW: Klappt!!! - Eine Frage noch
23.04.2013 11:01:43
Beverly
Hi Katharina,
mein Code: Range(Cells(2, 1), Cells(z, c))
dein Code: Range(Cells(1, 1), Cells(z, c))


AW: Klappt!!! - Eine Frage noch
23.04.2013 11:13:06
Katharina
Die Zeile hab ich aber ehrlich gesagt wieder geändert, da der Parameter für .Header = xlYes steht und ich ja sonst keine Überschriften habe. :o)
Du hast "wks_gr. " quasi vorangestellt und es dann später weggelassen, bei mir stand es jeweils vor Range und vor Cells. Warum das aber einen Fehler verursacht verstehe ich nicht :o(
Gruß,
Katharina

Anzeige
AW: Eine Frage noch
23.04.2013 12:33:17
Beverly
Hi Katarina,
es hängt offensichtlich damit zusammen, dass die Anweisung für SortFields.Add bei mir innerhalb der With-Anweisung für Sort steht und bei dir außerhalb.
Innerhalb der Sort-Anweisung ist der Bezug zum Tabellenblatt nicht erforderlich, da dieser ja in jedem Tabellenblatt der gleiche ist. Es gibt allerdings auch keinen Fehler, wenn der Name des Tabellenblattes davor steht, du also wks_gr.Range(wks_gr.Cells(2, 1), wks_gr.Cells(z, c)) verwendest, da es in diesem Tabellenblatt den Bereich ja abenfalls gibt.


Anzeige
Code ist für XL 2007ff und läuft darum nicht...
22.04.2013 14:38:57
EtoPHG
unter XL 2003, Katharina
eigentlich müsste für dich die Zeile
        wks_gr.Sort Key1:=wks_gr.Cells(1, y + 1), Order1:=xlAscending, Header:=xlYes, MatchCase: _
=False
, anstelle des ganzen With...End With Gedöns, genügen.
Gruess Hansueli

Hab mich bei der Version verklickt. Ist 2007
22.04.2013 15:03:09
Katharina
Sorry nochmal,
hab nicht gemerkt, dass ich die falsche Version angeklickt hab.
Gruß,
Katharina

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige