PDA

Vollständige Version anzeigen : listbox anhand eingabe in textbox ausfüllen


thomasullmann
09.07.2015, 08:34
hallo alle

ich habe eine userform welche aus einer TextBox und einer Listbox besteht, dazu eine Tabelle in der die verschiedensten einträge in einer bestimmten spalte stehen. Beispiel Spalte

tor 2x2m
tor 3x2m
tor 4x2m
fenster 1x1m
fenster 1x2m
tür 1x2m
tür 2x2m
...

jetzt möchte ich durch eingabe in die TextBox alle listeneinträge in der
listbox aufführen, die dem suchkriterium entsprechen.

bei eingabe "t" soll folgende liste auftauchen
tor 2x2m
tor 3x2m
tor 4x2m
tür 1x2m
tür 2x2m

bei eingabe "to" soll folgende liste auftauchen
tor 2x2m
tor 3x2m
tor 4x2m
usw.


wer von euch kann mir da weiterhelfen? Dank schon mal im voraus

Beverly
09.07.2015, 08:45
Hi,

lade doch mal eine Beispielmappe hoch - die Zeit für das Erstellen hast du ja bereits investiert und ein Nachbau stimmt meistens nicht mit dem Original überein.

<hr width="20%" align="left"><img src="http://excel-inn.de/images/grusz.gif" height=35" align="left" alt="Grußformel"><a href="http://excel-inn.de/"><img border="0" src="http://excel-inn.de/images/logo1.gif" height=35" align="middle" alt="Beverly's Excel - Inn"></a>

haklesoft
09.07.2015, 08:57
Hallo,

wäre es nicht leichter, wenn Du an Stelle einer Text- und einer Listbox nur eine ComboBox nimmst deren Eigenschaften Style auf 2 - fmStyleDropDownList und MatchEntry auf 1 - fmMatchEntryComplete gesetzt sind?

thomasullmann
24.07.2015, 09:40
dank dir für die Nachricht

in Wirklichkeit habe ich eine ellenlange liste aus Artikeln mit insgesamt ca. 100 Spalten. In der ersten TextBox möchte ich einen Suchbegriff eingeben. Dann soll z.B. in Spalte 55 von einer Anfangs- bis zu einer Endzeile nach allen Zellen gesucht werden, die dem Suchbegriff entsprechen. Die Inhalte der gefundenen Zellen sollen in einer zweiten Box (welche Art auch immer) aufgelistet werden. Dann sollte ich per Auswahl (keine Mehrfachauswahl) die Zeilennummer zurückbekommen, das würde mir schon genügen.

Im weiteren Verlauf werde ich anhand der Zeilennummer diese Zeile kopieren und in einem anderen Tabellenblatt einfügen. Diese Routine ist bereits vorhanden und funktioniert prima.

Ich kann die Datei leider nicht hochladen, da sie zum einen sehr umfangreich ist und zum anderen firmeneigen ist und daher nicht veröffentlicht werden kann.

Nicht gerade einfach gelle, aber würde mich freuen, wenn mir jemand einen tipp geben könnte, dank euch schon mal.

haklesoft
24.07.2015, 10:14
Aha, also zu umfangreich und geheim. :entsetzt:

Und warum sollten wir Helfer uns nun jeweils eine eigene Datei entwickeln, die Deinen Angaben möglichst entspricht und das leistet, was Du erwartest und das Ganze auch noch unentgeltlich, während Du Deine Arbeitszeit bezahlt bekommst?

Es wird hier Hilfe zur Selbsthilfe praktiziert! Auftragsarbeiten stellst Du besser in der Job-Börse (http://www.ms-office-forum.net/forum/forumdisplay.php?f=48) ein.

Beverly
24.07.2015, 10:50
Dann soll z.B. in Spalte 55 von einer Anfangs- bis zu einer Endzeile nach allen Zellen gesucht werden, die dem Suchbegriff entsprechen. Die Inhalte der gefundenen Zellen sollen in einer zweiten Box (welche Art auch immer) aufgelistet werden


Benutze dazu Autofilter, dann kannst du die gefilterten Zeilen in dein anderes Steurelement einlesen.


<hr width="20%" align="left"><img src="http://excel-inn.de/images/grusz.gif" height=35" align="left" alt="Grußformel"><a href="http://excel-inn.de/"><img border="0" src="http://excel-inn.de/images/logo1.gif" height=35" align="middle" alt="Beverly's Excel - Inn"></a>

thomasullmann
24.07.2015, 14:17
Hallo Helfer

da ist wohl was falsch rübergekommen. ich hätte gerne einen tip bekommen wie das grundsätzlich zu machen wäre, nicht dass ihr mir das in eurer Freizeit entwickelt. sorry

Beverly
24.07.2015, 14:42
Hi,

dem Tipp aus meinen Beitrag von 24.07.2015, 11:50 möchtest du anscheinend nicht folgen - dann kann ich dir auch nicht weiterhelfen.

<hr width="20%" align="left"><img src="http://excel-inn.de/images/grusz.gif" height=35" align="left" alt="Grußformel"><a href="http://excel-inn.de/"><img border="0" src="http://excel-inn.de/images/logo1.gif" height=35" align="middle" alt="Beverly's Excel - Inn"></a>

thomasullmann
25.07.2015, 14:18
hallo beverly

dank dir für den tip, ich konnt ihn einfach bis jetzt noch nicht ausprobieren. ich hab noch so meine Probleme wie ich einem, der mir tips gibt, direkt antworte. daher kommen einige (wie auch dieser) Kommentar zu spät. also entschuldige bitte und dank dir für den tip.

thomasullmann
25.08.2015, 15:57
Hallo beverly

hab eine weile rumprobiert und es doch irgendwie geschaft

ich habe eine eingabebox namens "eingabe" sowie eine ausgabebox namens "Ergebnis"

Hier der irgendwie doch recht einfache code:

Private Sub eingabe_Change()
If eingabe <> "" Then
Call liste_füllen
Else
ergebnis.Clear
End If
End Sub


Sub liste_füllen()
'eingabe in eingabebox merken
TeilString = eingabe
'bisherige einträge in ergebnisbox löschen
With ergebnis
.Clear
y = 0

'schleife die bei einer bestimmten Zeile beginnt und endet
For x = PLblatt.Range("art_0").Row To PLblatt.Range("ft_1").Row

'nachschauen, ob teilstring in der zelle (x,6) enthalten ist
If InStr(PLblatt.Cells(x, 6), TeilString) Then

'wenn ja listeneintrag mit zellinhalt erstellen
.AddItem PLblatt.Cells(x, 6)

'Feld 1 des listeneintrags = zellinhalt
.List(y, 0) = PLblatt.Cells(x, 6)

'Feld 2 = Zeilennummer im tabellenblatt zur späteren verwend.
.List(y, 1) = x

'Feldnamen um eins hochsetzen
y = y + 1
End If
Next x
End With
End Sub

Keine Ahnung, ob jemand so etwas brauchen kann, aber für mich ist es
genau das, was ich wollte. auch wenn ichs anders gemacht habe wir du
mir vorgeschlagen hast, trotzdem dir recht herzlichen dank.