Clever-Excel-Forum

Normale Version: Benutzerabhäniger Laufzeitfehler 9 Index ausserhalb des gültigen Bereichs!
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo Forumsmitglieder,

ich erstelle gerade eine kleine Exceldatenbank mit Makros.
Nach einem Datensatz soll mittels Suchfunktion gesucht werden.

Im Internet habe ich folgenden Code gefunden, welchen ich meinen Bedürfnissen angepasst habe.

Code:
Sub Search_Click()
   Dim x As Integer
   Dim P As Integer
   Dim wb1 As Workbook
   Set wb1 = Workbooks.Open("J:\Files\Technical\Test.xlsx")
   Windows("Test").Activate
   P = wb1.Sheets("Sheet1").UsedRange.Rows.Count
   x = Suchfeld
    temp = 0
   For k = 2 To P
       If Cells(k, 2) = x Then
           temp = 1
           Exit For
       End If
   Next
   If temp = 1 Then
       Unload Me
        row = k
       Testsheet2.Show
   Else
       MsgBox "No number in the System!"
        Unload Testsheet1
        Workbooks("Test").Close
   End If
End Sub
Der Code funktioniert soweit auf meinem PC auch einwandfrei.
Auf den PC's einiger Kollegen läuft das Makro auch, unabhängig von der Excelversion.

Nun zum eingendlichen Problem:
Auf den PC's mancher Kollegen funktioniert das Makro nicht. Ich bekomme immer den Fehler

"Laufzeitfehler 9 Index ausserhalb des gültigen Bereichs"
Logge ich mich mit meinem Account auf dem PC ein, funktioniert der Code einwandfrei.
Ich bin absolut ratlos, wo der Fehler liegt, da der Code ja bei manchen Benutzern funktioniert?! Dodgy
Ich hoffe ihr könnt mir weiterhelfen :)
Vielen Dank
Hallo,

wie sieht es mit dem manuellen Zugriff auf J:\Files\Technical\Test.xlsx aus?

Gruß Uwe
Hallo Uwe,

der manuelle Zugriff auf den Ordner funktioniert auf allen PCs bzw. bei allen
Benutzern.
Die Datei, auf die zugegriffen warden soll, ist ein Shared Workbook. Könnte es vllt daran liegen?

Fehler kommt immer bei

P = wb1.Sheets("Sheet1").UsedRange.Rows.Count

Bin absolut ratlos Dodgy
Hallo,

gibt es ein Tabellenblatt mit dem Namen Sheet1? Und wie heißt es bei dem Kollegen? Versuche es mal indem Du den Index angibst.

Code:
P = wb1.Worksheets(1).UsedRange.Rows.Count
Hey Stefan,

ja das Tabellenblatt mit dem Name Sheet1 existiert und heist auch überall gleich.

Hab gerade mit dem Code von dir probiert, funktioniert leider auch nicht. :s

Wie gesagt bei einigen Kollegen funktioniert das Makro einwandfrei, bei anderen kommt immer

Laufzeitfehler 9

Könnte das Ganze evtl. auf ein Netzwerkproblem zurückzuführen sein?

Gruss FlyingBeer :)
Hallo,

deklariere x und P als Long.

Gruß Uwe
Moin!
Meine Mutmaßung:
Die Windows-Auflistung erwartet zwingend die Caption-Eigenschaft der Mappe (und nicht automatisch den Dateinamen).
Habe es jetzt nicht ausprobiert, aber wenn ich im Explorer die Dateiendung nicht anzeigen lasse, müsste sie in der Caption ebenfalls verschwinden, was dann zum LZF 9 führt.

Hieße im ersten Code eigentlich:
Windows("Test.xlsx").Activate

Allerdings ist das Windows().Activate ohnehin überflüssig, da die durch Workbooks.Open geöffnete Mappe immer aktiv ist.

Gruß Ralf
:19:
So, habe es jetzt ausprobiert, folgendes aktiviert:

[attachment=12342]

In der Caption des Fensters erscheint jetzt der Dateiname ohne Endung.

Windows("Test").Activate funktioniert
Windows("Test.xlsx").Activate funktioniert auch

Wie oben geschrieben:
Der Fehler tritt dann auf, wenn die Dateiendung angezeigt wird und sie in der Windows()-Eigenschaft nicht im String ist!

Gruß Ralf
Hey Ralf,

ich hab es wie du aktiviert und siehe da, es funtkioniert.

Habe es bei zwei meiner Kollegen, bei denen es voher nicht funktionierte, mit Erfolg getestet.

Ich kann nun also beruhigt weiterarbeiten.

Vielen Dank Euch allen für die Hilfe, ohne Euch wäre ich aufgeschmissen gewesen!
Seiten: 1 2