Exel VBA Laufzeitfehler 9

  • Excel

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von galnar.

    Exel VBA Laufzeitfehler 9

    Hallo zusammen,

    ich habe mich hier angemeldet weil ich aktuell ein kleines Problem mit einer widerspenstigen VBA Programmierung habe und ich anscheinend zu Blöd bin den Fehler zu finden. Ich hoffe hier den einen hilreichen Hinweis zu finden.
    Kurz zu meinem Problem:

    Ich bin aktuell dabei eine Excel Datei mit Formularen zu versehen. Unter anderem auch mit einem Formular mit dem man Datensätze in der Tabelle suchen, ändern und wieder speichern kann. Ich habe allerdings ein Problem mit dem Suchfeld. Solange ich nach Textinhalten (z.B. Test) suche funktioniert alles Bestens, sobald ich aber nach Numerischen Inhalten (z.B. 1234) suche bekomme ich die Fehlermeldung "Laufzeitfehler 9 Index außerhalb des gültigen Bereichs". Ich hatte ursprünglich vermutet das es etwas mit der Formatierung der Tabellenfelder zu tun haben könnte. Aber eine Änderung der Formatierung hat auch keine Besserung gebracht.

    Hier noch der Ausschnitt aus dem Code:

    Option Explicit
    Dim Anz%, Zeile%, Data

    Private Sub cmdSuche_Click()
    Dim i%, found As Boolean
    found = False
    For i = 1 To Anz
    If txtKomNr.Value = Data(i, 2) Then <<<<<<<<<<<<< Das ist das Suchfeld
    Zeile = i + 1
    txtMeldung.Value = "Gefunden in Zeile " & Zeile
    txtDatum.Value = Data(i, 1)
    txtFgNr.Value = Data(i, 3)
    txtBehNr.Value = Data(i, 4)
    txtKunde.Value = Data(i, 5)
    txtBestellort.Value = Data(i, 6)
    txtEmpfaengerland.Value = Data(i, 7)
    txtVerkaeufer.Value = Data(i, 8)
    found = True
    Exit For
    End If
    Next i
    If found Then
    txtDatum.Enabled = True
    txtFgNr.Enabled = True
    txtBehNr.Enabled = True
    txtKunde.Enabled = True
    txtBestellort.Enabled = True
    txtEmpfaengerland.Enabled = True
    txtVerkaeufer.Enabled = True
    Range(Cells(Zeile, 1), Cells(Zeile, 8)).Select
    Else
    txtMeldung.Value = "Suche hat nichts gefunden"
    End If
    End Sub

    Private Sub UserForm_Initialize()
    Anz = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row - 1
    Data = Range(Cells(5, 1), Cells(Anz + 1, 8))
    txtMeldung.Value = "Suchbegriff eingeben"
    txtBehNr.Enabled = False
    txtKunde.Enabled = False
    txtBestellort.Enabled = False
    txtEmpfaengerland.Enabled = False
    txtVerkaeufer.Enabled = False
    End Sub

    Hat da jemand eine Idee?
    Ich bedanke mich schon mal bei allen die sich die Mühe machen mir zu antworten.