VBA: 1004 anwendungs- oder objektdefinierter Fehler
#1
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]
Top
#2
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.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Top
#3
Hallo,

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

wo kommt denn der Fehler genau?
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#5
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


Angehängte Dateien
.xlsm   HSNP_Laboranlage.xlsm (Größe: 1,63 MB / Downloads: 12)
Top
#6
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.
Gruß Atilla
Top
#7
Ich habe aber die originale Datei geschickt Confused
Wenn ich die UserForm3 starten möchte, kommt der Fehler sofort. :/
Anbei 2 Bilder...


Angehängte Dateien Thumbnail(s)
       
Top
#8
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

Wissen ist Macht - es ist aber nicht schlimm nicht alles zu wissen.
Man muss nicht alles wissen - man muss nur wissen wo es steht, oder wo man Hilfe bekommt.
Top
#9
Hallo,

bei mir tritt der Fehler nicht auf.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Top
#10
@marose67 ja habe ich.

Gibt es doch nicht :22:
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste