Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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]
Antworten 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
Antworten 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
Antworten 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)
Antworten 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)
Antworten 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
Antworten 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)
       
Antworten 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.
Antworten 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
Antworten Top
#10
@marose67 ja habe ich.

Gibt es doch nicht :22:
Antworten Top


Gehe zu:


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