Pustila jsem se do vývoje vlastní funkce která tohle všechno umí a po dlouhém testování (pomohl mi i jeden člen fóra PC-Help kterému se ta funkce taky hodila) jsem ji dovedla téměř k dokonalosti.
Funkce se vloží do modulu v editoru VBA který se spustí klávesovou zkratkou Alt+F11
Výsledný sešit se pak musí uložit jako "sešit s podporou maker" a v Excelu je potřeba mít povolená makra.
Function NajdiVice(Hledat As Variant, Oblast As Range, Prohledat_sloupek As Integer, Vzit_sloupek As Integer, Poradi As Integer) As Variant
' funkce na vyhledání položky v zadaném sloupci a v zadaném pořadí
' **** vysvětlivky funkce ****
' Hledat = co hledat
' Oblast = oblast dat (tabulka) kde hledat a vybírat výsledky
' Prohledat_sloupek = číslo sloupce v oblasti dat který se má prohledat
' Vzit_sloupek = číslo sloupce ze kterého se bude brát výsledek hledání
' Poradi = pořadí výsledku který má najít
' ****
Dim a As Long, x As Integer
x = 1
With Oblast
For a = 1 To .Rows.Count
If .Cells(a, Prohledat_sloupek) = Hledat Then
If x = Poradi Then
NajdiVice = .Cells(a, Vzit_sloupek) 'vrací nalezenou hodnotu
Exit Function
Else
x = x + 1 'počítadlo pořadí shody
End If
End If
Next
End With
NajdiVice = CVErr(xlErrNA) 'vrátí chybu N/A když nenajde shodu
End Function
Příklad použití výpisu položek podle stejného ID.
Zápis vzorce s průvodcem.
Funkce v editoru VBA vč. vysvětlivek (zelený text na začátku funkce)
Ukázkový soubor ke stažení
Ahoj,
OdpovědětVymazatvelice mě zaujala Tvá prezentovaná funkce na vyhledávání, která by mi, tuším, mohla vyřešit to, o co mi jde…
Můžu se zeptat, zda-li bys mi byla ochotná pomoci, prosím? Tuším totiž, že to, co bych potřeboval, by „hráčce“ jako ty ;) nemělo dělat většího problému a v podstatě se jedná o drobnou úpravu Tvého kódu, kterou bych ale já nejspíš zmastil.
Jde v podstatě o jednoduchou věc – a myslím, že jsi s tím už pomáhala někomu na (myslím) PC-help (soupis objednávek atd.) s právě tou drobnou úpravou. Jde mi o „přehled“ objednávek na základě data. Tedy, na základě předpokládaného TD objednávky + 7 dní předem „upozornit“ výpisem objednávek, které mají právě takové datum – více by vysvětlil právě soubor. + třeba proklik na řádek… Makra, dotazy apod. nevadí (zatím)…
Rád bych v souvislosti s tím požádal o kontakt na mail (slancar@post.cz) pro odeslání sešitu s daty, se kterými bych potřeboval pomoci. Sem nejdou vkládat přílohy…
Za reakci předem velice děkuji, Stanislav Šlancar
Dobrý den,
OdpovědětVymazatnarazil jsem na podobný problém, jen bych potřeboval vyhledávání ještě trochu více poupravit a vylepšit. Nechci to zadarmo. Je možné se s Vámi nějak zkontaktovat? Můj e-mail: checkboy @ gmail . com
Ahoj, tak funkce je naprosto genialni. Mam ale jeden problem. Udelal jsem vse jak popisujete. Kdyz vzorec zadám, funguje skvěle. Nevím ale proč, když změním zdroj, nedojde automaticky k přepočtu. U vašeho souboru ano, u mého ne. Nevíte, čím by to mohlo být?
OdpovědětVymazatAhoj, napdá mě jediné, vypnutý automatický přepočet.
VymazatJinak můžeš třeba zkusit vytvořit úplně nový sešit a do něho vložit tvoje data a moji funkci. Pokud to nepomůže, tak nevím.