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

Laufzeitfehler 438
27.09.2019 11:59:50
Marcus
Hallo zusammen,
Folgende Fehlermeldung kommt - Objekt unterstützt diese Eigenschaft oder MEthode nicht
markiert wurde diese Zeile:
ActiveWorkbook.Worksheets("Vortag").Sort.SortFields.Add2 Key:=Range( _
"K193:K300"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
xlSortNormal
obwohl ich diese Abfrage bei meheren Sheets benutze funktioniert sie hier auf einmal nicht
an was könnte das liegen? hat das auch mit der Umstellung von 32 auf 64Bit System zu tun?
Danke im voraus
Marcus

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitfehler 438
27.09.2019 12:24:45
Daniel
Hi
es ist eigentlich logisch, dass der Zellbereich, welcher die Reihenfolge der Sortierung festlegen soll, ein Teil des zu sortierenden Bereichs sein muss.
dh der Zellbereich, den du bei KEY angibst, muss auf dem gleichen Tabellenblatt liegen, wie das Blatt auf dem du sortieren willst.
wenn du jetzt bei Key nur die Range angibst, ohne ein Tabellenblatt davor, dann wird hier automatisch immer das gerade aktive Tabllelenblatt eingesetzt.
Es kommt dann zu dem Fehler, wenn dies ein anderes Blatt ist, als das was du sortieren willst ("Vortag")
sollte zufällig "Vortag" das aktive Blatt sein, dann passt es und der Code funktioniert.
ist ein anderes Blatt aktiv, kommt der Fehler.
die Abhilfe ist hier, auch Key das Tabellenblatt mit anzugeben (und in allen anderen Fällen, wo du Range oder Cells ohne Tabellenblattangabe hast).
ActiveWorkbook.Worksheets("Vortag").Sort.SortFields.Add2 Key:=ActiveWorkbook.Worksheets("Vortag").Range("K193:K300"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
Gruß Daniel
Anzeige
AW: Laufzeitfehler 438
27.09.2019 13:54:45
Marcus
Hi Daniel,
danke für die schnelle Hilfe und die guite Erklärung,
leider funktioniert der Code nicht, leider.
Zuhause läuft das Teil in der Arbeit nicht.
Zuhause Excel 2016 32bit
Arbeit Excel 2016 64bit
das ist der einzigeste Unterschied, hier mal das kpl. Makro (wie gesagt zuhaus eläuft es
Sub vortagdiagramm4()
' vortagdiagramm Makro
Sheets("Vortag").Select
ActiveWindow.SmallScroll Down:=-39
Sheets("Vortag").Select
ActiveWindow.SmallScroll Down:=-189
Range("J1:DM2").Select
Application.CutCopyMode = False
Selection.Copy
Range("J9").Select
ActiveWindow.SmallScroll Down:=177
Range("J189").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Selection.Copy
ActiveWindow.SmallScroll Down:=-21
Range("J193").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Application.CutCopyMode = False
ActiveWorkbook.Worksheets("Vortag").Sort.SortFields.Clear
'    ActiveWorkbook.Worksheets("Vortag").Sort.SortFields.Add2 Key:=Range( _
'        "K193:K300"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
'        xlSortNormal
ActiveWorkbook.Worksheets("Vortag").Sort.SortFields.Add2 Key:=ActiveWorkbook.Worksheets(" _
Vortag").Range("K193:K300"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Vortag").Sort
.SetRange Range("J193:K300")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
ActiveWindow.SmallScroll Down:=-207
Range("I5").Select
End Sub

Anzeige
AW: Laufzeitfehler 438
27.09.2019 14:18:31
Daniel
hi
du musst das Worksheet bei JEDEM "Range" angeben.
jedes "Range" ohne Tabellenblattangabe davor bezieht sich immer auf das aktive Blatt.
du hast deinen Code noch nicht vollständig überarbeitet.
Gruß Daniel
AW: Laufzeitfehler 438
27.09.2019 14:55:01
Marcus
Hi Daniel,
danke für die schnelle Hilfe und die guite Erklärung,
leider funktioniert der Code nicht, leider.
Zuhause läuft das Teil in der Arbeit nicht.
Zuhause Excel 2016 32bit
Arbeit Excel 2016 64bit
das ist der einzigeste Unterschied, hier mal das kpl. Makro (wie gesagt zuhaus eläuft es
Sub vortagdiagramm4()
' vortagdiagramm Makro
Sheets("Vortag").Select
ActiveWindow.SmallScroll Down:=-39
Sheets("Vortag").Select
ActiveWindow.SmallScroll Down:=-189
Range("J1:DM2").Select
Application.CutCopyMode = False
Selection.Copy
Range("J9").Select
ActiveWindow.SmallScroll Down:=177
Range("J189").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Selection.Copy
ActiveWindow.SmallScroll Down:=-21
Range("J193").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Application.CutCopyMode = False
ActiveWorkbook.Worksheets("Vortag").Sort.SortFields.Clear
'    ActiveWorkbook.Worksheets("Vortag").Sort.SortFields.Add2 Key:=Range( _
'        "K193:K300"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
'        xlSortNormal
ActiveWorkbook.Worksheets("Vortag").Sort.SortFields.Add2 Key:=ActiveWorkbook.Worksheets(" _
Vortag").Range("K193:K300"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Vortag").Sort
.SetRange Range("J193:K300")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
ActiveWindow.SmallScroll Down:=-207
Range("I5").Select
End Sub

Anzeige
AW: Laufzeitfehler 438
27.09.2019 17:22:19
Piet
Hallo marcus
ich habe den Code aus Neugier getestet und hatte auch einen Laufzeitfehler in Excel 2007.
Bitte aendere mal diesen Teil, und zwar OHNE ADD2, - nur ADD! - Danach lief er bei mir!
Ich habe den Code mal ein bisschen bereinigt. Auf Range.Select kann man fast immer verzichten.
mfg Piet
Sub vortagdiagramm4()
' vortagdiagramm Makro
Sheets("Vortag").Select
Range("J1:DM2").Copy
Range("J189").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("J193").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=True
Application.CutCopyMode = False
With ActiveWorkbook.Worksheets("Vortag").Sort
.SortFields.Clear
.SortFields.Add Key:=Range("K193:K300"), SortOn:= _
xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
End With
With ActiveWorkbook.Worksheets("Vortag").Sort
.SetRange Range("J193:K300")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("I5").Select
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige