Hallo,
weiß jemand, wenn man in einer Combobox, im ListFillRange z.B. A1:A30 immer verschiedene Werte stehen hat und manchmal auch leere Zellen, wie man diese leere Zellen in der Combobox ausläßt. Also so das die leeren Zellen im ComboBoxfenster nicht mehr zur Auswahl stehen sondern das ListFillRange irgendwie verkleinert wird, automatisch?
Danke für jede Hilfe
MFG
Xen55
Hallo Xen,
mit dem Geheimnis der Combobox hatten mein Kollege und ich auch so unsere Erfahrungen, daher die etwas unkonventionelle Namensgebung in unseren Codes.
Bei uns sieht es so aus
'ComboSau Anfang
Private Sub UserForm_Initialize()
Sheets(„Pivot Tables“).Select
For Each Cell In Range("(„f2:f6,f8:f11“)")
Combobruessel.AddItem Cell.Text
Next
End Sub
f7 wäre eine leere Zelle…
Ich hoffe du willst deine Leerzellen nicht variabel setzen, denn dann könnte ich dir leider auch nicht helfen…
Gruß Max
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Hallo Max,
leider JA, da sich der Listindex je nach Einstellung ändert und es
leere Zellen variabel auftreten.
Trotzdem DANKE für deine Hilfe
MFG
Xen55
naja aber mit dem Text müsste man doch arbeiten können…?
'ComboSau Anfang
Private Sub UserForm_Initialize()
Sheets(„Pivot Tables“).Select
For Each Cell In Range("(„f2:f30“)")
if NOT Cell.Text = „“ then
Combobruessel.AddItem Cell.Text
end if
Next
End Sub
so in etwa vielleicht?
Hi,
Danke aber muß ich das irgendwie sepeziell eingeben?? In die Combobox einfügen???
Irgendwas mache ich wohl falsch.
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Hallo nochmal Xen,
Munichfreaks Version stimmt absolut…
du musst den code nur ncoh per Copy-Paste in deinen VBA-Userform-Code integrieren.
Beachte dabei dass du den Zielbereich noch an dein Dokument anpassen musst, damits funzt.
ich habe Munichfreaks code nochmal korrigiert weil er, wahrscheinlich beim „copypasten“, den Datenbereich doppelt in Klammern gesetzt hatte…
Private Sub UserForm_Initialize()
Sheets(„Dein Sheet“).Select
For Each Cell In Range(„f2:f30“)
if NOT Cell.Text = „“ then
Combobruessel.AddItem Cell.Text
end if
Next
Einfach bei dein sheet den Namen des Sheets eintragen in dem deine Combobox Daten enthalten sind und statt f2:f30 deinen Datenbereich festlegen.
Müsste so eigentlich klappen…
und danke nochmal an den Münchner denn das mit der „If NOT“-funktion war mir auch noch nicht bekannt…
Gruß Max
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Ich muß etwas falsch verstanden haben.
Also ich haben den Code angepaßt, denke ich:
Private Sub UserForm_Initialize()
Sheets(„Tabelle1“).Select
For Each Cell In Range(„m1:m25“)
If Not Cell.Text = „“ Then
Combobruessel.AddItem Cell.Text
End If
Next
Sheets ist in Tabelle1 und der ListFillRange der Combobox ist von m1 bis m25. Diesen Code soll ich dann in VBA bei Talle1 oder Arbeitsplatz eintragen ??? Bei beiden passiert bei mir nichts.
Was habe ich falsch gemacht ???
Danke für Eure Hilfe.
MFG Xen55
Der Teufel liegt wie immer im Detail
Hi Xen…
ja du hast was falsch verstanden:smile:
aber das liegt an der komischen Namensgebung vor der ich schon in meiner ersten Antwort gewarnt hatte…
„Combobruessel“ war der name MEINER Combobox du musst dir nur noch deinen Namen im „Visual Basic Editor“-Menü raussuchen und den dann da eintragen dann passts.
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Der Teufel liegt wie immer in noch einem Detail
Hi Max,
habe jetzt auch auch den Namen verändert
Private Sub UserForm_Initialize()
Sheets(„Tabelle1“).Select
For Each Cell In Range(„m1:m25“)
If Not Cell.Text = „“ Then
ComboBox1.AddItem Cell.Text
End If
Next
Aber die leeren Zellen werden trotzdem angezeigt. Wieso.
Muß ich den Code in Tabelle1 eingeben oder ind diese Arbeitsmappe. Beides funtioniert nicht.
Hoffe diese Detail kann gefunden werden.
MFG
Xen55
Hmm Komisch
Hmm bei mir hatts in Diese Arbeitsmappe geklappt „not“ war aber grossgeschrieben…
Keine ahnung…
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]