hallo leute,
wie kann ich bei einer combobox prüfen,
bevor ich mit additem einen neuen eintrag hinzufüge
ob dieser schon in meiner liste vorhanden ist?
das ich das mit einer if-abfrage mache ist schon klar… blos welche methode?
viele grüße
rasta
hallo leute,
wie kann ich bei einer combobox prüfen,
bevor ich mit additem einen neuen eintrag hinzufüge
ob dieser schon in meiner liste vorhanden ist?
das ich das mit einer if-abfrage mache ist schon klar… blos welche methode?
viele grüße
rasta
Bsp. so:
For int_i = 0 To cbo_source.ListCount - 1
If cbo_source.Selected(int_i) = txt_mystring Then
'dothat
End If
Next int_i
Grüsse Peter
PeterG´s Function ist ein lineares Suchen. Vorausgesetzt, deine Combobox ist sortiert kannst du auch die sog. binäre oder algorithmische Suche anwenden. Das ist der Algorithmus:
Public Function bSearch (ByVal Search As Variant, SearchArray() as Variant) As Long
Dim left As Long, right As Long, middle As Long
On Error GoTo fehler
left = 0: right = UBound(SearchArray)
Do
middle = (left + right) / 2
If Search \> SearchArray(middle) Then
right = middle - 1
Else
left = middle + 1
End If
Loop Until SearchArray(middle) = Search Or left \> right
If SearchArray(middle) = Search Then bSearch = middle else bSearch = -1
Exit Function
fehler:
End Function
Erfahrungen?
Salü Holli
Was sind Deine Erfahrungen betreffend, welche Suchmethode (linear, binär) ist wann die bessere ist?
Grüsse Peter
binäre Suche hat, wenn ich mich nicht irre, einen Aufwand von wurezel(n). Das heißt es sind bei 100 elementen durchschn. 10 Schleifendurchgänge nötig um das Element zu finden.
Bei der linearen Suche ist der Aufwand n/2.
Das bedeutet, daß die binäre Suche deutlich schneller ist, je größer daß Array umso größer der Vorteil.
Allerdings muß dafür wie gesagt, das Array sortiert sein.
cu, holli
hallo,
erstmal danke für eure antworten…(hab auch brav sterne verteilt
) leider ist meine liste nicht sortiert…
ich checke von oben nach unten jeden wert einer excel-zelle durch(indem ich den zeilenwert um eins erhöhe) und lese diese werte in meine combobox ein… oder hat von euch einer ne idee, wie ich das sortieren kann?
grüße
rasta
Property ‚sorted‘
Hallo Rasta
Controls „combo“ wie „listbox“ haben ein Property „sorted“. Wenn true, dann wird der Inhalt alphabetisch sortiert.
Bitte verteile mir keine Sterne!!! Aus verschiedensten Gründen lehne ich diese Idee ab. Besten Dank für die Kenntnisnahme und Berücksichtigung.
Grüsse Peter
*sag nein zum Stern*
hallo peter,
erstmal danke für deinen tipp.
aber… bei vb6 hast du sicherlich recht… aber kannst du mir auch verraten wie ich das in VBA hinbekomme?
grüße
rasta
Tatsächlich…
Hallo Rasta
VBA 6.0 hat tatsächlich andere Controls. Z.B. das Property „sorted“ ist nicht enthalten.
Mein Ansatz war in solchen Fällen, die Daten vorher zu sortieren und nachher abzufüllen. Was für einen Profi wie Dich kein Problem sein sollte…
Grüsse Peter
hi günther,
danke für deine mühe
ja mist das mit den unterschiedlichen controls…
für mich kein problem?? na das ist doch eine meiner leichtesten übungen 
werds schon hinkriegen…
grüße
rasta
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]