Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1456to1460
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 Eingabeprüfung

Combobox Eingabeprüfung
15.11.2015 14:16:34
Axel
Hallo Excelianer,
trotz langer Suche nach einer Lösung komme ich nicht weiter.
Ich fülle ein Kombinationsfeld in einer Userform mit Daten aus der Spalte A der Tabelle.
Diese Daten (in der Originaltabelle sind das mehrere Hundert Einträge) sind durcheinander und mehrfach vorhanden. Mit Hilfe des Codes aus diesem Forum gelingt mir auch das Füllen des Kombinationsfeldes ohne Duplikate.
Option Explicit
Private Sub cmd_Close_Click()
Unload Me
Worksheets("Tabelle1").Cells(1, 1).Activate
End Sub
Private Sub UserForm_Initialize()
Dim objDic As Object
Dim IngZ As Long
Set objDic = CreateObject("Scripting.Dictionary")
For IngZ = 2 To Cells(Rows.Count, 1).End(xlUp).Row  'Spalte A (Testdaten)
objDic(Cells(IngZ, 1).Value) = 0
Next
Me.cbo_test.List = objDic.keys
'If cbo_test.Value = "" Then
'    MsgBox "Keine Testdaten ausgew‰hlt !!!", vbInformation, "Hinweis ..."
'End If
frm_Test.cbo_test.ListIndex = -1
End Sub

Nun mein Problem. In den Eigenschaften des Kombinationsfeldes habe ich der "Style"- Eigenschaft den Wert "0-frmStyleDropDownCombo" zugewiesen, da ich gern die Möglichkeit nutzen möchte, auch ein "leeres" Kombinationsfeld für eine Eingabe zu haben.
Und das ist das eigentliche Problem. Es funktioniert auch, aber ich kann alles in das Kombinationsfeld eintippen was die Tastatur hergibt und die Liste im Kombinationsfeld ist auch nicht alphabetisch sortiert.
Gibt es eine Möglichkeit, die "Such-Eingabe" im Kombinationsfeld auf die Einträge der Inhalte in der Spalte A zu begrenzen und die Inhalte alphabetisch sortiert in der Auswahl darzustellen?
Ich würde mich sehr freuen, wenn ihr mir weiterhelfen könntet.
Danke im Voraus dafür.
Axel.

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Combobox Eingabeprüfung
15.11.2015 15:31:25
Tino
Hallo,
zu Eingabe Begrenzen, maximale Anzahl Zeichen.
Private Sub cbo_test_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
KeyAscii = IIf(Len(cbo_test.Value) 

zu Einträge sortieren
Private Sub UserForm_Initialize()
Dim objDic As Object, Colec As Collection
Dim IngZ As Long
Set objDic = CreateObject("Scripting.Dictionary")
For IngZ = 2 To Cells(Rows.Count, 1).End(xlUp).Row  'Spalte A (Testdaten)
objDic(Cells(IngZ, 1).Value) = 0
Next
Me.cbo_test.List = QuickSort(objDic.keys, 0, objDic.Count - 1)
cbo_test.ListIndex = -1
End Sub
Function QuickSort(ByRef sArray As Variant, ByVal MinElem As Long, MaxElem As Long)
Dim Mitte As Long
Dim vDummy As Variant
Dim i As Long, j As Long
If MinElem > MaxElem Then
Exit Function
End If
Mitte = (MinElem + MaxElem) \ 2
i = MinElem
j = MaxElem
Do
Do While sArray(i)  sArray(Mitte)
j = j - 1
Loop
If i  j
QuickSort sArray, MinElem, j
QuickSort sArray, i, MaxElem
QuickSort = sArray
End Function

Anzeige
AW: Combobox Eingabeprüfung
15.11.2015 16:26:37
Axel
Hallo Tino,
danke dir für die Lösung !!! Funktioniert super.
Noch eine kurze Frage hinterher. Kann man eigentlich in der Codezeile
KeyAscii = IIf(Len(cbo_test.Value) 

nur bestimmte Zeichen zur Eingabe zulassen?
Ich wünsche dir ein schönes Wochenende.
Beste Grüße,

AW: Combobox Eingabeprüfung
15.11.2015 16:49:14
Tino
Hallo,
man könnte es mal so versuchen. (nicht ausgiebig getestet)
Private Sub cbo_test_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Dim sText$
sText = Left$(cbo_test.Value, cbo_test.SelStart)
sText = sText & Chr(KeyAscii)
sText = sText & Right$(cbo_test.Value, Len(cbo_test) - (cbo_test.SelStart + cbo_test.SelLength)) _
sText = sText & "*"
KeyAscii = IIf(IsNumeric(Application.Match(sText, cbo_test.List, 0)), KeyAscii, 0)
End Sub
Gruß Tino

Anzeige
AW: Combobox Eingabeprüfung
15.11.2015 17:36:01
Axel
Hallo Tino,
ich versuche es mal. Muss jetzt leider kurz weg. Gebe aber auf jeden Fall noch eine Antwort.
Beste Grüße,
Axel

AW: Combobox Eingabeprüfung
15.11.2015 18:13:47
Axel
Hallo Tino,
ich bin es noch mal.
Dank für deine vielen Tipps. Auch der letzte Tipp funktioniert perfekt.
Vielen Dank !!!
Beste Grüße,
Axel

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige