Clever-Excel-Forum

Normale Version: VBA: 1004 anwendungs- oder objektdefinierter Fehler
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo zusammen,


bei folgendem Code bekomme ich das Problem, dass (wenn ich eine if-Funktion einfügen möchte) aufgrund der Definition von "STARTZEILENNUMMER" den Fehler "1004 anwendungs- oder objektdefinierter fehler".
Lasse ich die if-Funktion weg und schreibe einfach z.B.  STARTZEILENNUMMER = 37, dann klappt das auch, nur möchte ich mit der Combobox arbeiten.

Kann mir da jemand behilflich sein?


LG Eric



Code:
[i]Private Sub LISTE_LADEN_UND_INITIALISIEREN()[/i]
[i]            Dim STARTZEILENNUMMER As Long[/i]
[i]          Dim lzeile As Long[/i]
[i]          Dim lZeileMaximum As Long[/i]
[i]          Dim i As Integer[/i]
[i]            Dim lspalte As Integer[/i]
[i]        [/i]
[i]        [/i]
[i]            'Alle TextBoxen leer machen[/i]
[i]            For i = 1 To iCONST_ANZAHL_EINGABEFELDER[/i]
[i]                Me.Controls("TextBox" & i) = ""[/i]
[i]            Next i[/i]
[i]        [/i]
[i]            ListBox1.Clear [/i]
[i]            [/i]
[i]            ListBox1.ColumnCount = 4[/i]
[i]            [/i]
[i]            If ComboBox2 = "2019" Then[/i]
[i]           STARTZEILENNUMMER = 37[/i]
[i][i]           ElseIf ComboBox2 = "2020" Then[/i][/i]
[i][i]            [i]STARTZEILENNUMMER = 76[/i][/i][/i]
[i]            End If[/i]
[i]        [/i]
[i]            ListBox1.ColumnWidths = "0;40;40;40"[/i]
[i]            If ComboBox2 = "2019" Then[/i]
[i]            lZeileMaximum = 75 'Benutzer Bereich auslesen[/i]
[i]            ElseIf ComboBox2 = "2020" Then[/i]
[i]            lZeileMaximum = 150[/i]
[i]            End If[/i]
[i]            For lzeile = STARTZEILENNUMMER To lZeileMaximum[/i]
[i]            [/i]
[i]            Tabelle2.Select[/i]
[i]                For lspalte = 3 To 500[/i]
[i]                    If InStr(Cells(3, lspalte), ComboBox1.Text) <> 0 Then[/i]
[i]                        Exit For[/i]
[i]                    End If[/i]
[i]                    lspalte = lspalte + 9[/i]
[i]                Next lspalte[/i]
[i]                If IST_ZEILE_LEER(lzeile) = False Then[/i]
[i]                    [/i]
[i]                    ListBox1.AddItem lzeile[/i]
[i]                    ListBox1.List(ListBox1.ListCount - 1, 1) = CStr(Tabelle2.Cells(lzeile, lspalte - 1) _[/i]
[i]        _[/i]
[i]        .Text)[/i]
[i]                    ListBox1.List(ListBox1.ListCount - 1, 2) = CStr(Tabelle2.Cells(lzeile, lspalte). _[/i]
[i]        Text)[/i]
[i]                    ListBox1.List(ListBox1.ListCount - 1, 3) = CStr(Tabelle2.Cells(lzeile, lspalte + 1) _[/i]
[i]        _[/i]
[i]        .Text)[/i]
[i]                    ListBox1.List(ListBox1.ListCount - 1, 4) = CStr(Tabelle2.Cells(lzeile, lspalte + 2) _[/i]
[i]        _[/i]
[i]        .Text)[/i]
[i]                [/i]
[i]                End If[/i]
[i]                [/i]
[i]            Next lzeile[/i]
[i]        [/i]
[i]        [/i]
[i]        End Sub[/i]
Hallo,

versuche es mal so:

Code:
Select Case ComboBox2.Value
                Case "2019"
                    STARTZEILENNUMMER = 37
                Case "2020"
                    STARTZEILENNUMMER = 76
            End Select

Auch vor dem Hintergrund, dass es vermutlich nicht bei den zwei Jahren bleiben wird.
Hallo,

an Deinem Code kann ich keinen Fehler erkennen.
Bei Nutzung von Option Explicit und der Deklaration aller Variablen
läuft er ohne Fehlermeldung.
Hallöchen,

wo kommt denn der Fehler genau?
Guten Morgen,

leider ändert sich nichts bei dem Vorschlag von Klaus-Dieter...

Es wird keine genaue Zeile angezeigt bei dem Fehler.

Anbei schicke ich euch mal die gesamte Excel.

LG Eric
Hallo,

immer noch kein Fehler zu erkennen.
Der Code läuft durch, in dieser Beispielmappe.
Da die Prozedur mehrmals hintereinander durchläuft, kann  es sicher bei bestimmten Aktionen zu Fehlern kommen.

Kannst Du nicht beschreiben, wann der Fehler auftaucht, bei welcher Aktion von Dir?
Vermutlich schon beim Starten der Userform. Da es aber in der abgespeckten Datei nicht passiert, muss es mit Deiner Original Datei zu tun haben.
Ich habe aber die originale Datei geschickt Confused
Wenn ich die UserForm3 starten möchte, kommt der Fehler sofort. :/
Anbei 2 Bilder...
Hallo,

ich bin mit F8 den gesammten Code durchgegangen. Bei mir tritt kein Fehler auf. Jetzt rate ich mal ... Hast Du ein 64Bit System?

Gruß
Marcus
Hallo,

bei mir tritt der Fehler nicht auf.
@marose67 ja habe ich.

Gibt es doch nicht :22:
Seiten: 1 2