Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1720to1724
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
Inhaltsverzeichnis

Userform lädt nur ab 3 Zeilen

Userform lädt nur ab 3 Zeilen
12.11.2019 09:42:15
Marc
Hallo,
ich habe eine Userform programmiert, die mittels Code mit Daten in 3 Comboboxen versorgt wird.
Die Tabelle hat eine Überschrift, dann kommen die Daten, die in der Combobox angezeigt werden sollen.
Nun bekomme ich einen Laufzeitfehler, wenn ich nur eine Zeile in der Tabelle habe (eigentlich sollte eine Zeile ja ausreichen um diese in der Combobox anzuzeigen....):
---------------------------
Microsoft Visual Basic for Applications
---------------------------
Laufzeitfehler '381':
Eigenschaft List konnte nicht gesetzt werden. Index des Eigenschaftenfelds ungültig.
---------------------------
OK Hilfe
---------------------------
Mein Code sieht wie folgt aus:
Private Sub UserForm_Initialize()
Dim arrDaten
Dim lngLetzte As Long
With Worksheets("Daten")
lngLetzte = .Cells(Rows.Count, 1).End(xlUp).Row
arrDaten = (.Range(.Cells(2, 1), .Cells(lngLetzte, 4)))
ComboBox1.List = arrDaten
End With
With Worksheets("Personen")
lngLetzte = .Cells(Rows.Count, 1).End(xlUp).Row
arrDaten = (.Range(.Cells(2, 16), .Cells(lngLetzte, 16)))
ComboBox2.List = arrDaten
End With
With Worksheets("Auftrag")
lngLetzte = .Cells(Rows.Count, 1).End(xlUp).Row
arrDaten = (.Range(.Cells(2, 12), .Cells(lngLetzte, 12)))
ComboBox3.List = arrDaten
End With
End Sub

Ich finde den Fehler einfach nicht... :(
Danke für Eure Hilfe!!
LG
Marc

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Userform lädt nur ab 3 Zeilen
12.11.2019 09:49:12
Stefan
Hallo Marc
Dim arrDaten
Du hast die Variable nicht deklariert, also du musst ihr einen Typ zuweisen (long/String/...), jeh nachdem für was Daten du laden willst.
gruß
Stefan
AW: Userform lädt nur ab 3 Zeilen
12.11.2019 10:46:35
andy-h
Hallo Marc
Der Array wird bei mir mit deinem Script korrekt geladen. Wo bleibt er denn stehen?
@Stefan: 'Dim arrDaten' ist dasselbe wie 'Dim arrDaten as Variant' - da Marc verschiedene Datentypen in die Array-Variable laden will, ist das eigentlich schon richtig.
Gruss Andy
AW: Userform lädt nur ab 3 Zeilen
12.11.2019 10:58:10
Luschi
Hallo Marc,
mit diesem Code kommt bei mir auch kein Fehler und alles ist korrekt. Ein Fehler kommt bei:
arrDaten = (.Range(.Cells(2, 1), .Cells(lngLetzte, 1)))
(1 statt 4) und nur einer Zelle, denn dann ist arrDaten kein Array sondern ein String
ind .List erwartet ein Array, dann sieht mein Code so aus:

Private Sub UserForm_Initialize()
Dim arrDaten
Dim lngLetzte As Long
Dim rg As Range, i As Integer
With Worksheets("Daten")
lngLetzte = .Cells(Rows.Count, 1).End(xlUp).Row
Set rg = .Range(.Cells(2, 1), .Cells(lngLetzte, 1))
If rg.Count = 1 Then
Me.ComboBox1.AddItem rg.Value
Else
arrDaten = rg
ComboBox1.List = arrDaten
Erase arrDaten
End If
End With
Set rg = Nothing
End Sub
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Userform lädt nur ab 3 Zeilen
12.11.2019 11:47:41
Marc
Hallo Luschi,
ich habe nun mal Deinen Code kopiert, bekomme aber leider den gleichen Fehler... :((((
Wie doof.....
AW: Userform lädt nur ab 3 Zeilen
12.11.2019 12:15:56
Daniel
Hi
aktiviere mal in EXTRAS - OPTIONEN - ALLGEMEIN - UNTERBRECHEN BEI FEHLERN die Option "in Klassenmodul"
dann sollte dir die tatsächlich fehlerverursachende Zeile angezeigt werden.
ansonsten kannst du zusätzlich noch abfragen, ob überhaupt Daten vorhanden sind, dh du stellst noch die Prüfung:
With Worksheets("Daten")
If .Cells(2, 1).Value = "" Then                 '--- keine Daten
Me.Combobox1.Clear
ElseIf .Cells(3, 1).Vaue = "" Then              '--- ein Datum
Me.Combobox1.Value .AddItem .Cells(2, 1)
Else                                            '--- mehrer Daten
Me.Combobox1.List = .Range(.Cells(2, 1), .Cells(.Rows.count, 1).End(xlup)).Value
end if
End with

Gruß Daniel
Anzeige
AW: Userform lädt nur ab 3 Zeilen
12.11.2019 13:35:43
Marc
Hallo Daniel,
der Fehler liegt im letzten Absatz bei der Zuweisung der Variable zu der Checkbox...
ComboBox3.List = arrDaten
"Eigenschaft List konnte nicht gesetzt werden. index des Eingeschaftsfelds ungültig"
Ich bin mal mit dem Cursor über arrDaten gegangen und da steht der Wert der Zelle drin "Frankfurt West, 01.01.2019"
Aber warum kann der das nicht zuordnen?
Lieben Gruß
Marc
AW: Userform lädt nur ab 3 Zeilen
12.11.2019 14:04:13
Daniel
Hi
das hatte dir Luschi doch schon erklärt:
wenn die zugewiesene Liste nur aus einem einzigen Wert besteht, dann liegt kein Array vor sondern ein Einzelwert.
und einen Einzelwert kannst du nicht dem .List zuweisen, Einzelwerte müssen mit .AddItem hinzugefügt werden.
zeig mal den Code, den du momentan verwendest.
Gruß Daniel
Anzeige
AW: Userform lädt nur ab 3 Zeilen
12.11.2019 15:26:30
Marc
Hallo Daniel,
ich habe es jetzt verstanden!! Vielen Dank!! Die AddItem Funktion war das, was ich nicht kapiert habe. Ich habe nun einfach abgefragt, ob es nur einen Eintrag gibt und wenn ja, dann fülle ich die ComboBox hart über eine Zelle.
Jetzt habe ich es aber endlich geschafft!
Lieben Gruß
Marc
AW: Userform lädt nur ab 3 Zeilen
12.11.2019 11:43:45
Marc
Hallo Andy,
er bleibt stehen, sobald ich die Userform starten möchte. Ich kann leider nicht debuggen, weil ich nur OK und Hilfe zur Verfügung habe... :(((
Lieben Gruß
Marc

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige