Laufzeitfehler 9
02.11.2020 10:02:22
Solari
aktuell stellt sich mir ein Problem, das ich nicht recht verstehe und daher auch nur schwer wiedergeben kann. Grob gesagt: Ich habe mir vor mehreren Jahren ein Makro gebastelt und es hat auch lange Zeit getan, was es sollte. Plötzlich bekomme ich aber folgende Fehlermeldung:
"Laufzeitfehler '9': Index außerhalb des gültigen Bereichs"
Ich bin der Meinung diese Fehlermeldung durchaus zu verstehen. Offenbar versucht hier Excel auf etwas zuzugreifen, das er anhand der angegebenen Parameter nicht finden kann. Wenn ich z.B. einen S-Verweis nutzen würde und den Bereich über Spalte 1 - 9 definiert habe, dann aber als Spaltenindex 10 angebe, müsste das doch ein Laufzeitfehler 9 sein.
Hier mein Code:
Sub JanuarMitarbeiterAuslesen()
Application.ScreenUpdating = False
Application.EnableEvents = False
Workbooks.Open (ThisWorkbook.Path & "\MitarbeiterzahlenGruppe_01_2020.xls")
Dim Zeile As Long
Dim ZeileDarunter As Long
Dim LetzteZeile As Long
Dim Einf?gzeile As Long
With Worksheets(1)
LetzteZeile = .Cells(Rows.Count, 1).End(xlUp).Rows.Row
For Zeile = LetzteZeile To 1 Step -1
If .Cells(Zeile, 1).Value = Workbooks("zz Automatisches Einlesetool").Worksheets(1). _
Cells(2, 4) Then
Einf?gzeile = 6
ZeileDarunter = Zeile + 1
Do While .Cells(ZeileDarunter, 1) 0
.Rows(ZeileDarunter).Copy
Workbooks("zz Automatisches Einlesetool").Worksheets(1).Cells(Einf?gzeile, 1). _
PasteSpecial xlPasteValues
Einf?gzeile = Einf?gzeile + 1
ZeileDarunter = ZeileDarunter + 1
If .Cells(ZeileDarunter, 1) = 0 Then
.Cells(ZeileDarunter, 7).Copy
Workbooks("zz Automatisches Einlesetool").Worksheets(1).Cells(2, 2).PasteSpecial _
_
xlPasteValues
End If
Loop
End If
Next Zeile
End With
Workbooks("MitarbeiterzahlenGruppe_01_2020.xls").Close SaveChanges:=False
Application.EnableEvents = True
Worksheets(1).Select
End Sub
Die Zeile, in der die Fehlermeldung auftritt, habe ich fett markiert.
Das Makro befindet sich übrigens in der Datei "zz Automatisches Einlesetool". Es öffnet die Mitarbeiterliste, sucht dort nach dem Kriterium, das in Zelle 2,4 des Einlesetools steht, kopiert die entsprechenden Zeilen aus der Mitarbeiterliste und fügt sie im Einlesetool ein.
Wenn das Makro läuft, sind also sowohl das automatische Einlesetool als auch die Mitarbeiterliste (sobald sie durch das Makro geöffnet wurde) geöffnet.
Die "gängigen" Fehler können m.E. ausgeschlossen werden. Die Dateien gibt es, sie wurden nicht umbenannt, verschoben usw.
Ich bin mir nicht sicher ob Relevanz besteht, aber seit dem letzten Ausführen des Makros habe ich einen neuen Laptop erhalten. Betriebssystem (Windows 10) und Excel-Version (Professional Plus 2016) sind unverändert geblieben.
Kann es sein, dass es irgendeine Art von Update gab, das nun verhindert, dass Excel zwischen den Dateien springt, bzw. mein Code es updatebedingt nicht mehr richtig deklariert?
Ich bin an der Stelle echt ratlos. Diverse Versuche den Code abzuwandeln indem ich "With Worksheets" durch den vollen Namen ersetze, die Tabellenblätter mit Namen anspreche und nicht mehr mit Index, usw. haben nicht zum gewünschten Erfolg geführt. Ich kann auch nicht nachvollziehen, was genau an der Stelle das Problem ist.
Habt ihr irgendwelche Ideen?
Gruß,
Solari