Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

ListFillRange in ActiveX-ComboBox

Forumthread: ListFillRange in ActiveX-ComboBox

ListFillRange in ActiveX-ComboBox
03.10.2020 19:07:02
Gerd
Ich habe: Office 2019 unter Windows10-Home mit allen akt. Updates
Hallo an Alle,
wie kann ich den variablen Text-Inhalt einer Merkerzelle in die ListFillRange-Eigenschaft einer ActiveX-ComboBox übernehmen? Wenn möglich, ohne VBA.
Dazu habe ich bisher keine Lösung gefunden. Beispieldatei in der Anlage.
https://www.herber.de/bbs/user/140624.xlsx
Danke und Gruß
Gerd
Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ListFillRange in ActiveX-ComboBox
03.10.2020 19:42:38
Daniel
Hi
Auch wieder über einen Namen
Erstelle den Namen "StädeAuswahl" mit folgender Formel bei "bezieht sich auf":
=Indirekt(Merker.Land)
Verwende dann diesen neuen Namen für die ListFillRange.
Gruß Daniel
AW: ListFillRange in ActiveX-ComboBox
03.10.2020 20:12:36
Gerd
Hallo Daniel,
dank für die Rückantwort, aber deine Formel =INDIREKT(Merker.Land) funktioniert leider nur, wenn ich ein Dropdown per Gültigkeitsprüfung einfüge. Da ist aber nur eine Spalte als Datenquelle zulässig. das habe ich schon erfolgreich getestet.
Ich verwende aber eine ActiveX-ComboBox, weil da mehrere Spalten in den Eigenschaften erlaubt sind, die ich auch nutzen möchte.
Userbild
In der Beispieldatei ist das nicht ersichtlich, weil ich sie so simpel wie möglich halten wollte.
Gruß Gerd
Anzeige
Da kann man sich mal wieder nur an den Kopf fassen
03.10.2020 20:41:12
Daniel
Und sich darüber wundern, dass erwachsene Menschen immer noch an Hellseher glauben.
Wie soll ich verdammt nochmal wissen, wie seine Datei aussiet, wen du mir eine ganz andere Datei zeigst?
Außerdem funktioniert das mit dem Namen sehr wohl mit ActiveX-Comoboboxen, also erzähle hier bitte keinen Scheiß.
Haben deine Namen auch die gleiche Anzahl an Spalten, wie die auch für die ActiveX-Box benötigt werden?
Vermutlich nicht.
Mit deiner Beispieldatei funktioniert es, daher ist das Problem aus meiner Sicht gelöst.
Anzeige
AW: Da kann man sich mal wieder nur an den Kopf fassen
04.10.2020 10:46:33
Gerd
Hallo Daniel,
einerseits ist das kein guter Ton und andererseits erzähl ich keinen "Sch...", denn es funktioniert eben nicht in ActiveX-ComboBoxen! Der Eintrag "=INDIREKT(Merker.Land)" in ListFillRange wird sofort nach weiterschalten gelöscht - weil wahrscheinlich nicht zulässig. Habe ich mehrfach vor und nach deinem "Beitrag" getestet.
Ansonsten verzichte ich gerne auf weitere Antworten von dir. Nimm einfach an - Problem gelöst. Schau mal zu ONUR, das funktioniert.
Gruß Gerd
Anzeige
AW: Da kann man sich mal wieder nur an den Kopf fassen
04.10.2020 11:28:21
Daniel
Hi
Du hast meinen Beitrag nicht richtig gelesen.
Ich schrieb nicht, dass du "=Indirekt(Merker.Land)" bei ListFillRange eintragen sollst, sondern dass du zunächst einen weiteren Namen (mit dieser Formel) erstellen musst und dann diesen Namen bei ListFillRange einsetzt.
Da du bereits intensiv mit Namen gearbeitet hast, bin ich eigentlich davon ausgegangen, dass ich ich das einfach genung erklärt habe und dass du auch intelligent genug bist, diese einfache Anweisung umzusetzen.
Außerdem, du hast geschrieben, dass es mit deiner Echt-Datei nicht funktioniert, weil die eben mehr Spalten hat und nicht das, was du mir jetzt schreibst.
Warum Schreibstil du nicht gleich das richtige?
Das gehört auch zum Guten Ton.
Gruß Danielj
Anzeige
AW: Da kann man sich mal wieder nur an den Kopf fassen
05.10.2020 11:29:53
Gerd
Hallo Daniel,
sorry - ist wohl war, dass ich deinen ersten Beitrag nicht richtig geschnallt habe. Ich hatte mich vor meinem Hilferuf an die Community intensiv mit einer Dropdown-Lösung per Gültigkeitsprüfung beschäftigt. Die Funktion "=INDIREKT(Bezug;A1)" war noch im Hinterkopf, sodass ich sie automatisch auch in der ComboBox anwenden wollte. Natürlich Quatsch, wie sich herausstellte.
Bei meinem geplantem Projekt handelt es sich um eine umfangreiche Datei für Sportveranstaltungen im gesamten OSL-Landkreis mit vielen personenbezogenen Daten, die ich im Netz nicht unbedingt veröffentlichen wollte. Deshalb die vereinfachte Beispieldatei, die ich sie so simpel wie möglich halten wollte - Hinweis stand am Schluss.
Fazit: Ich werde deine Lösung einsetzen, weil sie prima funktioniert und gegenüber der Version von ONUR unkomplizierter ist.
Dein Weg einen Namen per Namensmanager zu definieren, der offensichtlich keinen Bezug zu einer Zelle, Bereich, Blatt oder Mappe hat, und die INDIREKT-Funktion dort einzutragen, ist mir noch nie im Netz begegnet - Super Idee.
Im Anhang habe ich für die, die vielleicht eine ähnliche Lösung suchen, nochmal die Anfrage und die Lösungsvorschläge zusammengefasst.
https://www.herber.de/bbs/user/140657.xlsx
Gruß Gerd
Userbild
Anzeige
AW: Da kann man sich mal wieder nur an den Kopf fassen
05.10.2020 13:21:45
Daniel
tja, wer lesen kann, ist im Vorteil...
ja, man kann bei Namen die Zellbereiche auch per Formel berechnen.
beispielsweise kannst du den Namen StädteAuswahl auch so gestalten, dass er sich die Zellbereiche in der Spalte E automatisch sucht, so dass du nicht mehr für jedes Land einen eigenen Namen erstellen muss.
die Formel für das "bezieht sich auf" wäre dann:
=BEREICH.VERSCHIEBEN(INDEX(Daten!$E:$E;VERGLEICH(Merker.Land;Daten!$E:$E;0));1;0;4;1)
die Anzahl der Zeilen und Anzahl der Spalten pro Land kannst du in den letzten beiden Parametern einstellen.
die Voraussetzung wäre, dass das für alle Länder gleich ist.
Gruß Daniel
Anzeige
AW: ListFillRange in ActiveX-ComboBox
04.10.2020 11:10:31
Gerd
Hallo ONUR,
danke für deine Lösung. Das funktioniert ganz gut. Folgendes kann ich aber nicht nachvollziehen.
Wenn ich eine Zelle in F1:F4 anklicke, steht in der Bearbeitungsleiste {=INDIREKT($A$5)} mit geschweiften Klammern. Klicke ich in die Bearbeitungsleiste verschwinden die geschweiften Klammern. Wo kommen diese Klammern her und was bedeuten/bewirken sie?
Wenn ich deine Lösung in meinem Projekt übernehmen will und die INDIREKT-Funktion anwende, wird ein Fehler mit Hinweis ausgegeben:
Userbild
Wo liegt der Fehler?
Gruß Gerd
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Infobox / Tutorial

ListFillRange in ActiveX-ComboBox optimal nutzen


Schritt-für-Schritt-Anleitung

  1. ActiveX-ComboBox einfügen:

    • Gehe zu "Entwicklertools" und wähle "Einfügen".
    • Wähle die ActiveX-ComboBox aus und ziehe sie auf dein Arbeitsblatt.
  2. Namensdefinition erstellen:

    • Gehe zu "Formeln" und klicke auf "Namensmanager".
    • Klicke auf "Neu" und gib den Namen (z.B. "StädteAuswahl") ein.
    • Setze die Formel in das Feld "Bezieht sich auf":
      =INDIREKT(Merker.Land)
    • Dies ermöglicht dir, den ListFillRange dynamisch zu gestalten.
  3. ListFillRange zuweisen:

    • Rechtsklicke auf die ActiveX-ComboBox und wähle "Eigenschaften".
    • Suche die Eigenschaft ListFillRange und trage den Namen ein, den du im vorherigen Schritt erstellt hast (z.B. "StädteAuswahl").
  4. Testen:

    • Schließe den Entwurfsmodus und teste die ComboBox, um sicherzustellen, dass die Werte korrekt angezeigt werden.

Häufige Fehler und Lösungen

  • Fehler: ListFillRange wird gelöscht: Wenn du den Eintrag in ListFillRange nach einem Wechsel verlierst, überprüfe, ob die Formel korrekt eingegeben wurde und ob die Quelle valide ist.

  • Fehler: Mehrere Spalten: Wenn du eine ActiveX-Combobox verwendest, stelle sicher, dass die Anzahl der Spalten in der Quelle der ListFillRange mit der ComboBox übereinstimmt.


Alternative Methoden

  • Verwendung von Dropdown-Listen: Wenn du keine ActiveX-ComboBox benötigst, kannst du auch eine normale Excel-ComboBox verwenden und die Gültigkeitsprüfung für Dropdown-Listen nutzen.

  • VBA zur Automatisierung: Du kannst auch VBA verwenden, um den ListFillRange dynamisch zu definieren. Ein Beispiel wäre:

    ActiveSheet.OLEObjects("ComboBox1").Object.ListFillRange = "A1:A10"

Praktische Beispiele

  • Beispiel für Städteauswahl: Angenommen, du hast eine Liste von Städten in den Zellen A1:A10 und du möchtest diese in deiner ActiveX-ComboBox anzeigen. Verwende die oben genannten Schritte zur Erstellung eines Namens und weise diesen der ComboBox zu.

  • Erweiterte Datenquelle: Wenn deine Daten mehr als eine Spalte benötigen (z.B. Stadt, Land), stelle sicher, dass du eine Array-Formel oder eine Matrixformel für den ListFillRange nutzt.


Tipps für Profis

  • Experimentiere mit dynamischen Bereichen, indem du die BEREICH.VERSCHIEBEN-Funktion nutzt, um die Datenquelle für deine ActiveX-ComboBox flexibel zu gestalten.
  • Halte die Daten in einer separaten Tabelle, um die Übersichtlichkeit zu verbessern und die Wartung zu erleichtern.

FAQ: Häufige Fragen

1. Kann ich eine ActiveX-ComboBox ohne VBA nutzen?
Ja, du kannst die ListFillRange direkt in den Eigenschaften der ComboBox definieren, ohne VBA zu verwenden.

2. Was bedeutet die geschweifte Klammer bei der Formel?
Die geschweifte Klammer zeigt an, dass es sich um eine Matrixformel handelt, die mehrere Werte gleichzeitig verarbeiten kann.

3. Gibt es Einschränkungen bei der Verwendung von ListFillRange?
Ja, die Quelle für ListFillRange muss in einem benannten Bereich definiert sein und darf keine leeren Zellen enthalten, um korrekt zu funktionieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige