Zaslal/a
9.6.2016 13:07Hledám nějaký způsob, abych v dlouhém rozbalovacím seznamu nemusel myší/šipkou hledat potřebnou položku, ale abych napsáním písmene, na něž hledaná položka začíná, skočil alespoň na první položku, která na toto písmeno začíná, ideálně psaním dalšího písmene na další relevantní položku začínající na tato dvě písmena.
eLCHa napsal/a:
Ne, Like bych nepoužil.
Na tohle je výborná funkce Filter.
Data: Na List1 v objektu Tabulka - vybírám první sloupec
Formulář: TextBox1 a ListBox1
Vše obslouží tento krátký kód (testováno asi 20s - rozlišuje velká a malá písmena)Dim sValues() As Variant
Private Sub UserForm_Initialize()
sValues = Application.Transpose(List1.ListObjects(1).ListColumns(1).Range.Value)
Me.ListBox1.List = sValues
End Sub
Private Sub TextBox1_Change()
Me.ListBox1.List = Filter(sValues, TextBox1.Text)
End SubPokud nechcete rozlišovat velká a malá Me.ListBox1.List = Filter(sValues, TextBox1.Text, , vbTextCompare)
elninoslov napsal/a:
Uložte si niekam vlastnosť TextBox1.ListIndex. To je Index (poradové číslo) vybranej položky. Ďalej si to už ľahko spracujete podľa potreby.
elninoslov napsal/a:
Uložte si niekam vlastnosť TextBox1.ListIndex. To je Index (poradové číslo) vybranej položky. Ďalej si to už ľahko spracujete podľa potreby.
eLCHa napsal/a:
potřeboval bych zjistit na kterém řádku v databázi (list2 "data_klient") se klient nachází
Pokud načítáte souvislou oblast, např. Range("A1:A100"), tak to vám právě řekne ListIndex (tuším, že začíná 0) takže přesněji ListIndex + 1.
Range("A1:A100").Cells(lb.ListIndex + 1)
Pokud ta oblast není souvislá nebo s daty v ListBoxu něco vyvádíte (např. řazení) - tak si adresu nebo řádek uložte jako další (nezobrazenou) hodnotu listboxu.
lb.AddItem Range.Value
lb.List(lb.ListCount - 1, 1) = Range.Address
Pokud ten listbox filtrujete, jak je v tomto tématu - tak nejsrozumitelnější pro vás bude použít vyhledávací funkci - nejpravděpodobněji Worksheetfunction.Match
Píšu to zbrucha - pokud to není přesné, berte jako inspiraci a nasměrování - dolaďte si.
Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.
Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.