Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1852to1856
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

Combobox / Benötige Leerwert

Combobox / Benötige Leerwert
01.11.2021 13:19:20
Andreas
Hallo Leute,
mit nachfolgendem Code befülle ich eine Combobox nach werten, die in der Spalte zu finden sind.
Das klappt soweit auch ganz gut. Jetzt möchte ich aber, dass die Combobox nur Werte zulässt, die sie natürlich auch gefunden hat.
Wenn ich den entsprechenden Wert in der Box auswähle, lässt er mir dann aber keinen Leerwert mehr zu, wenn mal in die Box geklickt wurde.
Wie kann ich das umgehen? Möglicherweise noch einen zusätzlichen Eintrag hinzufügen, der "" enthält? Wenn ja, wie mache ich das bei so einer dynamischen Befüllung?
Vielen Dank vorab

Private Sub FilterBox_Enter()
Dim varWerte As Variant, varItem As Variant
Dim objDictionary As Object
With Worksheets("Datenbank")
varWerte = .Range(.Cells(5, 12), .Cells(.Rows.Count, 12).End(xlUp)).Value
Set objDictionary = CreateObject("Scripting.Dictionary")
For Each varItem In varWerte
objDictionary.Item(Key:=varItem) = vbNullString
Next
End With
Me.FilterBoxStadtKreis.List = objDictionary.Keys
Set objDictionary = Nothing
End Sub

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

Betreff
Datum
Anwender
Anzeige
AW: Combobox / Benötige Leerwert
01.11.2021 13:31:44
Michael
Moin,
mal ins Blaue geraten...wenn die Range bis .Cells(.Rows.Count + 1, 12).End(xlUp) ginge. Die Zelle müsste doch leer sein, oder?
Grüße
Michael
AW: Combobox / Benötige Leerwert
01.11.2021 13:34:08
Andreas
Das ist eine gute Idee, dann bringt er aber einen Laufzeitfehler...:( 1004
AW: Combobox / Benötige Leerwert
01.11.2021 13:59:50
Michael
Schade. Aber inzwischen verstehe ich: Dein .Rows.Count liefert 1048576. Weiter geht's nicht...
Aber um bei dem Ansatz zu bleiben...reicht Dir vielleicht der verwendete Bereich. Meistens ist der deutlich kleiner:
' auf .End(xlUp) kann dann auch verzichtet werden
varWerte = .Range(.Cells(5, 12), .Cells(.UsedRange.Rows.Count + 1, 12)).Value
Grüße
Michael
Anzeige
AW: Combobox / Benötige Leerwert
01.11.2021 14:09:24
Andreas
Auch der Ansatz ist nicht schlecht. Jetzt steht zwar eine Leerzeile in der Combobox (leider ganz unten), wenn ich dann aber zb einen wert rauslösche, kommt wieder Ungültiger Eigenschaftswert. Ich muss also speziell diese Leer-Zeile auswählen, damit ich wieder aus der Box komme....
AW: Combobox / Benötige Leerwert
01.11.2021 14:24:11
Michael
Wo löscht Du welchen Wert raus? Und wann wird Deine Sub immer ausgeführt?
Vielleicht muss sich daran was ändern, damit Du keinen ungültigen Wert auswählen kannst?
Wo Du den leeren Eintrag in der Liste haben wolltest, hast Du nicht geschrieben ;-) Aber wie der nach oben zu kriegen ist...lassen sich objDictionary.Keys oder .Items irgendwie sortieren?
objDictionary.Keys.Sort
oder
objDictionary.Items.Sort Asc
scheint der Editor erstmal zu "fressen", zumindest schreibt er von sich aus alles groß, wenn ich es klein eingebe.
Mit diesen Objekten hatte ich bisher leider noch nicht zu tun :(
Aber wenn das so sortiert wie Excel inzwischen grundsätzlich sortiert, dann sind Leerzeichen nie mehr oben...
Anzeige
AW: Combobox / Benötige Leerwert
01.11.2021 14:26:51
Andreas
Mit rauslöschen meinte ich, aus der Box einen Wert der Box selbst herauszulöschen im Userform...zb mit Rücktaste...
sortieren klappt nicht mit dem Befehl
AW: Combobox / Benötige Leerwert
01.11.2021 14:43:15
Michael
O je, ich nahm an, Deine ComboBox sei eine Liste unter Datenüberprüfung. Dann bin ich mit meinem vba leider am Ende. Dachte ich könnte Dir auf die Schnelle helfen.
Aber jetzt verstehe ich, warum hier beim rumprobieren immer bei Me.FilterBox... Schluss war. "Me". die Userform.
Doch Moment, wenn sich diese ComboBox öffnet/ausklappt, das ist doch der Augenblick, in dem sie befüllt werden muss. Warum steht dann noch das da drin, was Du eben rausgelöscht hat?
Anzeige
AW: Combobox / Benötige Leerwert
01.11.2021 14:45:58
Andreas
DAs steht nicht generell drinnen. Das ist eine box, mit der ich filtere. Hierzu nimmt sie aus der Tabelle alle Werte (jeden Wert auch nur 1x) und dann kann man nach a, b, c, d, usw filtern. Wenn ich jetzt c auswähle und dann wieder löschen möchte, bringt er mir eben: ungültiger wert - Obwohl wir ja dennoch ein Leerfeld integriert haben. Erst wenn ich diesen Leereintrag dann manuell auswähle, meckert er nimmer....
Hilfe, hier muss jemand anders dran
01.11.2021 15:01:00
Michael
Ein Leerfeld ohne jeden Inhalt ist wahrscheinlich kein Leerstring...? Ist das vielleicht das Problem?
AW: Hilfe, hier muss jemand anders dran
01.11.2021 15:42:24
Andreas
Danke trotzdem erstmal für die Anstrengungen... Vielleicht kann ja noch jemand helfen...
Anzeige
AW: Hilfe, hier muss jemand anders dran
01.11.2021 16:08:25
Nepumuk
Hallo Andreas,
teste mal:

Private Sub UserForm_Initialize()
Dim varWerte As Variant, varItem As Variant
Dim objDictionary As Object
Set objDictionary = CreateObject("Scripting.Dictionary")
objDictionary.Item(Key:=vbNullString) = vbNullString
With Worksheets("Datenbank")
varWerte = .Range(.Cells(5, 12), .Cells(.Rows.Count, 12).End(xlUp)).Value
End With
For Each varItem In varWerte
objDictionary.Item(Key:=varItem) = vbNullString
Next
FilterBoxStadtKreis.List = objDictionary.Keys
Set objDictionary = Nothing
End Sub
Gruß
Nepumuk
AW: Hilfe, hier muss jemand anders dran
01.11.2021 16:12:42
Andreas
Hey Nepumuk,
das hat schonmal geklappt, dass das Leerfeld jetzt am Anffang der Liste steht. Dennoch schreit er jedesmal nach "Ungültiger Wert", wenn ich nach dem Auswählen eines Eintrages nur mit der Rücktaste das Feld lösche. Er benötigt immer die direkte Auswahl der leeren Zeile....
Anzeige
Erledigt
01.11.2021 16:35:20
Andreas
Mamamia,
das alles immer so kompliziert sein muss. ICh konnte das Problem lösen, indem ich MatchRequierd auf True, MatchEntry auf Complete und Style auf List setzte.
Danke nochmal an alle... LG

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige