Herbers Excel-Forum - das Archiv

Laufzeitfehler 9 (mal wieder :-) )

Bild

Betrifft: Laufzeitfehler 9 (mal wieder :-) )
von: IngoLars

Geschrieben am: 30.12.2006 10:51:02
Liebe Excel-Gemeinde,
ich hätte da folgendes Problem.
Das nachfolgene Makro ist im Projekt "Test1" geschrieben:
Sub Test1 ()
Workbooks("Test2").Worksheets("Tabelle1").Activate
End Sub

Dieses simple Makro läuft auf meinem Rechner, auf dem meines Kollegen leider nicht. Es ergibt dort einen Laufzeitfehler 9. Auch auf anderen PC's läuft es mal und mal wieder nicht.
Offensichtlich ist es auf den PC's wo es nicht läuft nicht möglich Makros auszuführen die auf Objekte ausserhalb der gerade geöffneten Arbeitsmappe zugreifen. Warum?
Hat jemand eine Idee wie ich das Problem lösen kann? Ggf. hängt es an irgendwelchen Sicherheitseinstellungen von Windows?
Grüße
Ingo Lars
Bild

Betrifft: AW: Laufzeitfehler 9 (mal wieder :-) )
von: Oberschlumpf

Geschrieben am: 30.12.2006 10:59:59
Hi Ingo Lars
Index ausserhalb des (gültigen?) Bereichs
So lautet doch der Text der Fehlermeldung, oder?
Du kannst nicht auf Tabellenblätter und/oder Excel-Dateien zugreifen, die gar nicht vorhanden sind.
Ich vermute, dass ist der Grund für den Fehler Nr. 9.
Du musst in deinem Code zuerst prüfen, ob DIE Tabellenblätter/Excel-Dateien, auf die du zugreifen willst, auch vorhanden sind.
Wie soll Excel auch ein Tabellenblatt ACTIVATEN, welches nicht vorhanden ist???
Konnte ich helfen?
Ciao
Thorsten
Bild

Betrifft: AW: Laufzeitfehler 9 (mal wieder :-) )
von: IngoLars

Geschrieben am: 31.12.2006 10:30:52
Hallo Oberschlumpf,
leider ist dies ja genau das Problem.
Die Objekte sind vorhanden aber ein Zugriff ist nicht möglich (Laufzeitfehler 9 Index ausserhalb des gültigen Bereichs). Natürlich sind beide Datein (Test1 und Test2) geöffnet wenn das Makro läuft.
Das ganze macht schlicht keinen Sinn, zumal das Makro auf einigen PC's läuft auf anderen dagegen nicht.
Ich hab geprüft ob es ggf. an der Excel-Version liegen könnte, aber auf den Rechnern ist absolut das gleiche Excel mit den gleichen Servicepacks installiert.
Also frag ich nochmal: wer hatte schon ein ähnliches Problem, woran liegt das?
Ein echts Mysterium.
Grüße
IngoLars
Bild

Betrifft: AW: Laufzeitfehler 9 (mal wieder :-) )
von: Oberschlumpf

Geschrieben am: 31.12.2006 11:05:46
so'n Mist :-)
Hi
Dieser Satzteil "...die auf Objekte ausserhalb der gerade geöffneten Arbeitsmappe zugreifen...", besonders das Wort "ausserhalb", brachte mich zu dem, was ich zuletzt schrieb.
Hast du es schon mal mit dieser Variante versucht?
Workbooks("Test2").Sheets("Tabelle1").Activate
Ich kenne nicht den Unterschied zwischen Worksheets und Sheets. Aber vielleicht hilft es ja trotzdem ? :-)
Oder vielleicht liegt es ja daran, dass vorm Aufruf deines Activate-Makros durch den Benutzer ein anderes Workbook angeklickt wurde.
Vielleicht muss in diesem Fall ja zuerst das Workbook aktiviert und im 2. Code-Schritt das Sheet aktiviert werden - als so:
Workbooks("Test2").Activate
Sheets("Tabelle1").Activate
Mal sehen, ob das hilft :)
Ciao
Thorsten
Bild

Betrifft: AW: Laufzeitfehler 9 (mal wieder :-) )
von: IngoLars

Geschrieben am: 31.12.2006 12:05:28
Hallo Thorsten,
also das mit den zwei Programmzeilen hab ich schon versucht, brachte nichts.
Worksheets oder Sheets? Soweit ich das noch in Erinnerung habe ist es grundsätzlich egal was man verwendet. Worksheets ist wohl der ältere Begriff aus einer früheren VBA-Version?
Ich kanns dennoch mal versuchen. Mal sehen ob's was bringt Worksheets gegen Sheets auszutauschen. Bin da aber wenig optimistisch da ja Makros die sich nur auf die aktive Arbeitsmappe beziehen auch mit dem Begriff Worksheets laufen.
dennoch danke für den Tipp
Grüße
ILH
 Bild
Excel-Beispiele zum Thema "Laufzeitfehler 9 (mal wieder :-) )"
Fortlaufende Suche unter Vermeidung eines Laufzeitfehlers Bei falscher Eingabe alten Wert wiederherstellen
Zufallszahlen generieren, die sich nicht wiederholen Startansicht wiederherstellen
Wiederherstellung des alten Zellinhaltes bei unerlaubten Werten Zum Druck auf Fax-Drucker umschalten und wieder zurück
Druck einer Tabelle mit wechselndem Wiederholungszeilentext Vor dem Druck Zeilen einfügen und danach wieder löschen
Keine Wiederholung fett geschriebener Zahlen Teilbereiche als Wiederholungszeilen anlegen