Kurze Frage zur Combobox

  • Excel

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von INOPIAE.

    Kurze Frage zur Combobox

    Ich habe eine Combobox mit ca 800 Items.

    Alle Items sind 4 Zeichen lang.

    Der User soll von Item zu Item springen indem er vier Zeichen eingibt.
    Daher sollen alle Eingaben ab über vier Zeichen hinweg als Neue Eingabe gewertet werden: alle Zeichen löschen, vorn vorne anfangen.

    Meine Annahme:
    Dazu muss stets der gesamte Text markiert sein, Alles was über Len(.Text) = 4 hinausgeht, versuche ich wie folgt zu behandeln:

    Visual Basic-Quellcode

    1. Private Sub cbx_EDVdropdown_Change()
    2. With cbx_EDVdropdown
    3. .Text = Left$(.Text, 4)
    4. .SelStart = 0
    5. .SelLength = Len(.Text)
    6. End With
    7. End Sub



    Dummerweise klappt das nicht so ganz.
    Ich habe schon alle Varianten ausprobiert und sehe langsam den Baum vor lauter Wäldern nicht mehr.
    Ich verstehe zwar noch nicht ganz, was Du willst, aber dies könnte Dir weiterhelfen:

    Visual Basic-Quellcode

    1. With cbx_EDVdropdown
    2. If Len(.Text)>4 then
    3. .Text = Mid(.Text,4)
    4. End If
    5. End With
    NB. Es ist doch schön, wenn man lesbare Namen vergibt. Siehe auch [VB.NET] Beispiele für guten und schlechten Code (Stil).
    Hallo und vielen Dank für die Antwort.
    Schon mal ganz gut, jetzt soll aber, wenn der User >4 Zeichen eingibt, die Eingabe komplett gelöscht werden und das 5. eingegebene Zeichen das erste Zeichen der Combobox sein.

    zB

    User gibt ein

    ABCD

    Die Daten werden raugesucht, angezeigt, alles Prima.
    Jetzt möchte der User gerne VWXY suchen, und zu diesem Zwecke eben nur durch Eingabe des Zeichens "V" die Combobox leeren und das V eintragen, um dann WXY einzugeben und den entsprechenden Item in der Combobox anzusprechen.

    Ich merke gerade - selbst beim erklären bekomme ich einen Knoten im Hirn, sorry falls nicht eineindeutig sein sollte was ich will...