Live-Forum - Die aktuellen Beiträge
Datum
Titel
18.04.2024 18:04:29
18.04.2024 16:33:24
Anzeige
Archiv - Navigation
992to996
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
992to996
992to996
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Laufzeitfehler beim sortieren

Laufzeitfehler beim sortieren
22.07.2008 11:01:32
Gordon
Moin,
ich möchte meine Liste gerne per Makro sortieren. Leider bekomme ich immer den Laufzeitfehler '438': Objekt unterstützt diese Eigenschaft oder Methode nicht. Leider sehe ich den Fehler woran es liegen könnte nicht. Auch die VB-Hilfe konnte mir nicht weiterhelfen. Hat da jemand eine Idee? Hier mal der Quelltextbereich, wo die Sortierung drin steht:

'Unternehmensliste erstellen
Workbooks.Add
Anzahl = ActiveWorkbook.Sheets.Count
For i = 1 To Anzahl
Sheets("Tabelle" & i).Select
Select Case i
Case Is > 1
Sheets("Tabelle" & i).Select
ActiveWindow.SelectedSheets.Delete
End Select
Next i
'Daten vom Generator zu Unternehmensliste übertragen
ActiveWorkbook.Sheets("Tabelle1").Range("1:1").Value = ThisWorkbook.Sheets("Format Unt").Range(" _
1:1").Value
Set wksT = ActiveWorkbook.Sheets("Tabelle1")
lngT = 1
With ThisWorkbook.Sheets("Generator")
Do While .Cells(lngG + 1, 1)  ""
lngG = lngG + 1
strAG = .Cells(lngG, 19)
strN = .Cells(lngG, 21)
lngT = lngT + 1
wksT.Cells(lngT, 2) = .Cells(lngG, 18).Value
wksT.Cells(lngT, 3) = strAG
wksT.Cells(lngT, 8) = "Unternehmen HH Modell 2008; Unternehmen ALLGEMEIN"
wksT.Cells(lngT, 10) = .Cells(lngG, 23).Value
Do While strAG = .Cells(lngG + 1, 19) And .Cells(lngG + 1, 1)  ""
lngG = lngG + 1
strN = strN & "; " & .Cells(lngG, 21)
Loop
wksT.Cells(lngT, 1) = strN
Loop
End With
'Unternehmensliste formatieren und speichern
ActiveWorkbook.Sheets("Tabelle1").Cells.EntireColumn.AutoFit
ActiveWorkbook.Sheets("Tabelle1").Sort Key1:=Range("C2"), Order1:=xlAscending, Key2:=Range(" _
B2") , Order2:=xlAscending, Header:=xlNo, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "/" & Format(Date, "YYYY/MM/DD") & " _
_Listengenerator - Untern.xls", FileFormat _
:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:= _
False, CreateBackup:=False
ActiveWorkbook.Close


8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitfehler beim sortieren
22.07.2008 11:36:00
Kawensmann
Hallo,
dass die VB-Hilfe nicht weiterhilft, ist ja kaum zu glauben. Da stehen doch schöne Beispiele drin.
Die Sort-Methode kannst du nicht direkt auf das Sheet anwenden, sondern nur auf eine Range
also z.B.
Worksheets("Sheet1").Range("A1:C20").Sort usw.
oder
Worksheets("Sheet1").Range("A1").Sort usw.
wobei im letzteren Fall der aktive Bereich sortiert wird.
Gruß
Kawensmann

AW: Laufzeitfehler beim sortieren
22.07.2008 12:14:56
Gordon
Danke,
aber nun bekomme ich bei folgendem Quelltext den Laufzeitfehler '1004':
ActiveWorkbook.Sheets("Tabelle1").Range("a2:j2501").Sort Key1:=Range("C2"), Order1:=xlAscending, Key2:=Range("B2"), Order2:=xlAscending, Header:=xlNo, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

Anzeige
AW: Laufzeitfehler beim sortieren
22.07.2008 12:33:00
Andi
Hi,
so wie das jetzt in Deinem Code steht, kommt der SortKey aus Zelle C2 in der aktuell aktiven Tabelle, was nicht notwendigerweise Tabellle1 sein muss. Gib mal Workbook und Tabelle mit an und versuchs nochmal.
Ansonsten enthält die Fehlermeldung ja einige Hinweise auf die mögliche Ursache. Bist Du dem mal nachgegangen?
Schönen Gruß,
Andi

AW: Laufzeitfehler beim sortieren
22.07.2008 13:09:00
Gordon
Moin Andi,

so wie das jetzt in Deinem Code steht, kommt der SortKey aus Zelle C2 in der aktuell aktiven  _
Tabelle, was nicht notwendigerweise Tabellle1 sein muss.


Aber den Quelltext davor "ActiveWorkbook.Sheets("Tabelle1").Cells.EntireColumn.AutoFit" führt er ja noch ohne Probleme aus, obwohl da auch die aktive Tabelle angesprochen wird. Und schon direkt danach meckert er aber über dien Sortierungsquelltext. Es geht da immer noch in der selben Tabelle umher.


Gib mal Workbook und Tabelle mit an und versuchs nochmal.


Da müßte ich ja mal fragen wie das geht, da ich dieses Workbook zu dem Zeitpunkt gerade erst im Makro erzeugt habe und es daher noch keinen spezifischen Namen hat. Oder sehe ich da etwas falsch?


Ansonsten enthält die Fehlermeldung ja einige Hinweise auf die mögliche Ursache. Bist Du dem  _
mal nachgegangen?


Mit der Fehlermeldung kann ich leider mit meinem beschränktem Wissen nichts anfangen. Auch nicht mit der Hilfe dazu.

Anzeige
AW: Laufzeitfehler beim sortieren
22.07.2008 13:36:00
Andi
Hi,
Es geht da immer noch in der selben Tabelle umher.
Eben nicht.
Range("C2") bezeichnet die Zelle C2 in der aktiven Tabelle.
Sheets("Tabelle1").Range("C2") bezeichnet die Zelle C2 in Tabelle1, egal welche Tabelle aktiv ist.
Schönen Gruß,
Andi

AW: Laufzeitfehler beim sortieren
22.07.2008 13:11:07
Rudi
Haallo,

With ActiveWorkbook.Sheets("Tabelle1")
.Range("a2").Sort Key1:=.Range("C2"), Order1:=xlAscending, Key2:=.Range("B2"), Order2:= _
xlAscending, Header:=xlNo, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End With


Gruß
Rudi

Anzeige
AW: Laufzeitfehler beim sortieren
22.07.2008 13:39:53
Gordon
Klasse,
so hat es geklappt. Aber macht "With" so einen großen Unterschied aus?
Danke + Gruß
Gordon

AW: Laufzeitfehler beim sortieren
22.07.2008 15:51:09
Rudi
entscheidend ist die saubere Referenzierung.
Du könntest auch
ActiveWorkbook.Sheets("Tabelle1").Range("a2").Sort Key1:=ActiveWorkbook.Sheets("Tabelle1").Range("C2"), Order1:=xlAscending, Key2:=ActiveWorkbook.Sheets("Tabelle1").Range("B2"), Order2:= xlAscending, Header:=xlNo, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
schreiben.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige