< návrat zpět

MS Excel


Téma: Prohledávání v ListBoxu rss

Zaslal/a 4.4.2015 23:58

Ahoj
prosím o radu. Mám naprogramovaný formulář, kde je i jeden listbox a v něm je povoleno vyhledávání podle zadaných znaků(více znaků). A teď bych chtěl, aby při vyhledávání v tomto listboxu byla vybraná položka (položka vybraná psaním znaků do listboxu) na prvním místě (podobně jako tomu je v comboboxu). Šlo by to nějak udělat??
díky

Zaslat odpověď >

#024408
elninoslov
ListBox mi funguje tak, že pokiaľ píšeš do neho (keď si naň kliknutý) bez prerušenia trvajúceho cca 1-2s, tak ti označí prvý riadok spĺňajúci to čo píšeš. To je ale nepraktické, keďže akonáhle na chvíľku prestaneš, tak berie od teba nový text na nové hľadanie. Neviem ako sa to dá vyriešiť priamo v LB, ale môžeš to vyskúšať urobiť aj takto:
Příloha: rar24408_vyhladavanievlb.rar (12kB, staženo 33x)
citovat
#024495
avatar
díky, to jak máš udělané by bylo OK, ale chtěl bych, aby se při vyhledávání zobrazily i řádky za hledaným výrazem. Zkrátka aby označená položky byla vždy uprostřed listboxucitovat
icon #024498
eLCHa
Vyzkoušejte například totoPrivate Sub ListBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
With ListBox1
.TopIndex = .ListIndex
End With 'ListBox1
End Sub
Zkoušel jsem pouze krátce
fmMatchEntryComplete - má to nějaké mouchy, někdy to zapomene předchozí sekvenci a skočí na první položku, někdy naopak ne
fmMatchEntryFirstLetter - tady to naopak zdá se funguje spolehlivě, navíc nehrozí zapomenutí sekvence znaků. Vyhledávání mezi slovy začínajícími stejným znakem se provádí opakovaným stiskem počátečního písmene - dle mého názoru spolehlivější a i pohodlnější - ale samozřejmě záleží na obsahu ListBoxucitovat
#024567
elninoslov
Táto úprava môjho kódu funguje myslím tak ako chceš. Do konštanty je potrebné zadať počet zobrazených riadkov LB (nie položiek !).
Vyhľadáva akúkoľvek časť. Predošlá verzia hľadala len začiatok.
Příloha: rar24567_vyhladavanievlb2.rar (12kB, staženo 44x)
citovat
#024588
avatar
Paráda, už je to tak, jak jsem si představoval. Ještě jsem si kód trochu upravil, aby nevyhledával jakoukoli část, ale jen od začátku.citovat
#024609
avatar
přeci jenom bych se ještě zeptal
Formulář, potažmo makro, se spouští klikem do sloupečku B.
V makru mám naprogramováno, aby se znovu použil automatický filtr na litu "seznam materialu" (je to z toho důvodu, kdyby se něco do seznamu přidalo)
Problém je v tom, že jakmile se znovu použije automatický filtr tak se vybraná pole na listu "seznam materialu" prosvítá až na první list (nevím jak lépe to popsat). Toto popsané se děje pouze při zobrazení jako při tisku (zobrazují se okraje a záhlaví), ale v normálním zobrazení se to neděje.
Bylo by možné to nějak odstranit?
Příloha: zip24609_nabidky-kopie.zip (44kB, staženo 32x)
citovat
#024611
elninoslov
Skús, mne už to nerobí. Pridal som len Application.ScreenUpdating = False
Chcel som ešte po filtry odznačiť oblasť, ale hádzalo mi to chybu. Tak som tam hodil tento príkaz, uložil, zavrel, otvoril, a už to nerobí. Či to bolo len v tom ???, treba skúsiť.
Galibu tam ale ešte robí hlavička, stĺpec G, a ešte možno rozlíšenie tlače. Kombinácia týchto vecí môže rozhodiť stránku. Posunul som trošku okraj, nastavil DPI na 300, s hlavičkami pohnúť neviem. No snáď je to OK.
Příloha: rar24611_nabidkykopie.rar (44kB, staženo 41x)
citovat
#024651
avatar
Tak teď už jsem plně spokojen
díkycitovat

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Helios iNuvio

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.

On-line nástroje