PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Laufzeitfehler '9'; bei Excel 2000


Daywalker
23.07.2002, 14:40
Finde die Ursache für folgenden Fehler nicht:

Laufzeitfehler '9';
Index außerhalb des gültigen Bereichs

Dieser Fehler tritt auf wenn ich ein bestimmtes Excel-Makro zu Gehaltsberechnung offen habe und eine andere beliebige Excel Datei öffne.

Wenn ich dann debugge springt er zu folgenden Codezeilen:

Public Function ErmittlungPersonalschluessel() As Long
ErmittlungPersonalschluessel = Sheets("Einstieg_Zulagen").Range("d2") *10 + Sheets("Einstieg_Zulagen").Range("e2")
End Function

Das Tabellenblatt "Einstieg_Zulagen" ist vorhanden!

Ich hab keine Ahnung mehr von was der Fehler sonst noch kommen kann!

Wer hat da nen Tip?

thx.daywalker


tweakyou
31.07.2002, 12:20
hi

das Problem liegt an der Tatsache das Referenzen wie Sheet(...
sich immer auf das ActiveWorkbook beziehen. Als Lösung könntest du ThisWorkbook.Sheet(.... schreiben oder als erstes in deiner Funktion ThisWorkbook.Activate schreiben. Ich bin einfach davon ausgegangen dass dein Code sich in der gleichen Mappe wie die Daten befinden

Ryu
31.07.2002, 12:23
ich peil da gar nix :(

tweakyou
31.07.2002, 13:37
OK,

verwende mal folgenden Code

Public Function ErmittlungPersonalschluessel() As Long
ErmittlungPersonalschluessel = ThisWorkbook.Sheets("Einstieg_Zulagen").Range("d2") *10 + ThisWorkbook.Sheets("Einstieg_Zulagen").Range("e2")
End Function


Zur Erklärung.

Nehmen wir an deine Mappe mit dem Code nennt sich Mappe1.xls die andere Mappe nenne ich jetzt mal Mappe2.xls.

du öffnest Mappe1.xls jetzt ist das ActiveWorkbook deine Mappe1.xls. Wenn du jetzt deine Funktion aufrufst wird der Code Sheets("Einstieg_Zulagen").Range("d2") so interpretiert ActiveWorkbook.Sheets("Einstieg_Zulagen").Range("d2")

Jetzt öffnest du Mappe2.xls und Mappe2.xls wird zum AktiveWorkbook. Rufst du jetzt erneut deine Funktion auf wird der Code Sheets("Einstieg_Zulagen").Range("d2") so interpretiert ActiveWorkbook.Sheets("Einstieg_Zulagen").Range("d2") .
Nachdem aber jetzt das ActiveWorkbook nicht mehr wie gewünscht die Mappe1.xls ist wird dieser Fehler ausgelöst ( Mappe2.xls hat keine Tabelle mit dem Namen "Einstieg_Zulagen".