Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1880to1884
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Laufzeitfehler 424 - Objekt erforderlich
12.05.2022 10:43:09
Max
Hallo liebes Forum,
Ich habe erneut ein Problem mit dem Laufzeitfehler 424 - Objekt erforderlich. Ich habe zum Ziel, ein Listenfeld zu erstellen und über eine Suchleiste zu befüllen. Wenn ich das Makro starte öffnet er mir ohne Probleme die UserForm, wenn ich einen Wert in die Suchleiste eingebe, zeigt er mir den Laufzeitfehler 424 an. Beim Debuggen markiert er mir folgende Zeilen:

Private Sub cmdSuchen_Click()
Dim IngZeile As Long
Dim IngZeileMax As Long
Dim i As Integer
Me.ListBox1.Clear
With tbl_Kunden
IngZeileMax = .Cells(.Rows.Count, 1).End(xlUp).Row           (diese Zeile markiert er mir)
For IngZeile = 3 To IngZeileMax
If InStr(.Cells(IngZeile, 1).Value, Me.TextBox1.Value) > 0 Then
Me.ListBox1.AddItem .Cells(IngZeile, 1).Value
Me.ListBox1.Column(1, i) = .Cells(IngZeile, 2).Value
Me.ListBox1.Column(2, i) = .Cells(IngZeile, 3).Value
Me.ListBox1.Column(3, i) = .Cells(IngZeile, 4).Value
Me.ListBox1.Column(4, i) = .Cells(IngZeile, 5).Value
Me.ListBox1.Column(5, i) = IngZeile
i = i + 1
End If
Next IngZeile
End With
End Sub
Ich wäre euch sehr dankbar, wenn ihr mir bei dem Problem weiterhelfen könntet. Verzeiht bitte außerdem etwaige Fehler innerhalb meiner Beschreibung, da ich noch ein blutiger Anfänger bin.
Viele Grüße Max

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitfehler 424 - Objekt erforderlich
12.05.2022 10:53:52
GerdL
Moin Max,
wo und wie hast du tbl_Kunden deklariert?
Was steht im UserForm_Initialize ?
Gruß Gerd
AW: Laufzeitfehler 424 - Objekt erforderlich
12.05.2022 11:01:35
Max
Hallo Gerd,
Danke für die schnelle Rückmeldung!
tbl_Kunden ist der Codename der Tabelle.
In UserForm1_Initialize steht folgender Code:

Private Sub UserForm1_Initialize()
Dim i As Integer
With tbl_Kunden
Me.Caption = .Range("A1").Value
For i = 1 To 10
Me.Controls("Label" & i).Caption = .Cells(2, i).Value
'For i = 1 To 5
'   Me.Controls("Label" & i + 10).Caption = .Cells(2, i).Value
Next i
End With
With Me.ListBox1
.ColumnCount = 6
.ColumnWidths = "80;80;80;80;80;10"
End With
Me.TextBox1.SetFocus
End Sub
Gruß Max
Anzeige
AW: Laufzeitfehler 424 - Objekt erforderlich
12.05.2022 11:29:09
Max
Hallo Gerd,
Ich lade dir mal die vollständige Arbeitsmappe hoch. Die Daten sind selbstverständlich keine echten Kundendaten.
https://www.herber.de/bbs/user/153026.xlsm
Gruß Max
Codename <> Name
12.05.2022 11:34:50
{Boris}
Hi,
der Codename des Blattes ist Tabelle1, tbl_Kunden ist der Blattname.
Also:
With Worksheets("tbl_Kunden")
oder
With Tabelle1
VG, Boris
AW: Codename <> Name
12.05.2022 12:03:49
Max
Hallo Boris,
das hat mir weitergeholfen, ich danke dir. Jetzt zeigt er mir aber nur die Kundennummer an. Die Überschriften und die anderen Einträge zeigt es mir immer noch nicht an. Ich habe aber überall den Namen von tbl_Kunden in Tabelle1 umbenannt.
VG Max
Anzeige
Ich hab Deinen Code...
12.05.2022 12:05:25
{Boris}
Hi,
...noch gar nicht weiter angesehen. Da ich jetzt erstmal afk bin, stell ich auf offen.
VG, Boris
AW: Codename <> Name
12.05.2022 12:58:18
peterk
Hallo
Setzte in deiner Listbox den ColumnCount auf 5
Peter
AW: Codename <> Name
12.05.2022 13:34:14
Max
Hallo Peter,
ich habe den ColumnCount auf 5 gesetzt und es hat sich nicht verändert. Die Überschriften und die anderen Inhalte der ListBox werden nicht angezeigt.
VG Max
AW: Codename <> Name
12.05.2022 13:58:30
peterk
Hallo
UserForm_Initialize und nicht UserForm1_Initialize (es war auch noch ein Fehler drin, daher die ganze Sub)

Private Sub UserForm_Initialize()
Dim i As Integer
With tbl_Kunden
Me.Caption = .Range("A1").Value
For i = 1 To 10
Me.Controls("Label" & i).Caption = .Cells(2, i).Value
Next i
End With
With Me.ListBox1
.ColumnCount = 6
.ColumnWidths = "80;80;80;80;80;10"
End With
Me.TextBox1.SetFocus
End Sub
Peter
Anzeige
AW: Codename <> Name
12.05.2022 14:18:22
Max
Hallo Peter,
Vielen, vielen lieben Dank dir Peter! Du bist einsame Spitze!!
Jetzt geht es endlich nach langer Suche.
Darf ich dein umfangreiches Wissen nochmals in Anspruch nehmen und dich fragen, wie ich es schaffe, dass die Liste mir standardmäßig Werte z.B. von den letzten 20 Einträgen anzeigt?
Viele Grüße und nochmals Danke Max
AW: Codename <> Name
12.05.2022 14:39:13
peterk
Hallo

Private Sub Autofill()
Const lastEntries = 20
Dim IngZeile As Long
Dim IngZeileMax As Long
Dim i As Integer
Me.ListBox1.Clear
With tbl_Kunden
IngZeileMax = .Cells(.Rows.Count, 1).End(xlUp).Row
For IngZeile = WorksheetFunction.Max(3, IngZeileMax - lastEntries + 1) To IngZeileMax
Me.ListBox1.AddItem .Cells(IngZeile, 1).Value
Me.ListBox1.Column(1, i) = .Cells(IngZeile, 2).Value
Me.ListBox1.Column(2, i) = .Cells(IngZeile, 3).Value
Me.ListBox1.Column(3, i) = .Cells(IngZeile, 4).Value
Me.ListBox1.Column(4, i) = .Cells(IngZeile, 5).Value
Me.ListBox1.Column(5, i) = IngZeile
i = i + 1
Next IngZeile
End With
End Sub
und in die Userfrom_Initialize

Call Autofill
Me.TextBox1.SetFocus
End Sub
Peter
Anzeige
AW: Codename <> Name
12.05.2022 14:52:56
Max
Nochmals Hallo Peter,
Ich danke dir nochmals von ganzem Herzen für deine Hilfe. Du weißt gar nicht, wie sehr du mir damit geholfen hast. Bin gerade ganz baff von so viel Hilfsbereitschaft. Vielen herzlichen Dank!!
Ganz liebe Grüße Max
Listbox
12.05.2022 14:02:36
Rudi
Hallo,

Private Sub cmdSuchen_Click()
Dim IngZeile As Long
Dim IngZeileMax As Long
Dim i As Integer
  With ListBox1
.Clear
.ColumnCount = 6
End With
With Tabelle1
IngZeileMax = .Cells(.Rows.Count, 1).End(xlUp).Row
For IngZeile = 3 To IngZeileMax
If InStr(.Cells(IngZeile, 1).Value, Me.TextBox1.Value) > 0 Then
Me.ListBox1.AddItem .Cells(IngZeile, 1).Value
Me.ListBox1.Column(1, i) = .Cells(IngZeile, 2).Value
Me.ListBox1.Column(2, i) = .Cells(IngZeile, 3).Value
Me.ListBox1.Column(3, i) = .Cells(IngZeile, 4).Value
Me.ListBox1.Column(4, i) = .Cells(IngZeile, 5).Value
Me.ListBox1.Column(5, i) = IngZeile
i = i + 1
End If
Next IngZeile
End With
End Sub
Gruß
Rudi
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige