< návrat zpět

MS Excel


Téma: Vyhledání a vložení položky rss

Zaslal/a 9.11.2013 11:43

Zdravím..
Potřeboval bych požádat někoho o pomoc s následujícím...
Patrně to bude asi oříšek to zrealizovat a rád za tuhle pomoc i zaplatím, protože vím, že to zabere nějaký čas a námahu...
V přiloženém sešitu vybírám z UF položky z ceníku pomocí Comboboxů a vkládám je do formuláře nabídky, vše OK. Nyní bych potřeboval k tomu přidat možnost vyhledání položky podle názvu a po nalezení položky (položek) dále označit (vybrat) z nalezených výsledků jeden a vložit jej do listu Nabídka. Vše je popsané v UF s přiloženém souboru. Prosím tedy někoho o pomoc s tímto. Díky M.

Příloha: rar16203_vyhledani-polozky.rar (191kB, staženo 19x)
Zaslat odpověď >

Strana:  1 2   další »
#016204
avatar
Když napíšeš část položky a dáš entr nebo se přepneš do jiného políčka UF tak to nalezne vše ze sloupce B listu Položky
Když klikneš na položku a dáš vložit tak se to vloží na list Nabídka
Koukni a uvidíš
Příloha: zip16204_vyhledani-polozky.zip (198kB, staženo 20x)
citovat
#016205
avatar
Tak to je pecka, nečekal jsem to takhle rychle. Moc děkuji. Jen tedy nešla by tam vložit podmínka, která by ignorovala slovo "Název položky"? Jelikož to načte i názvy všech nadpisů ve sloupci B když zadám třeba začátek slova "na" a chci vyhledávát nástěnky.citovat
#016206
avatar
Najdi v kódu to mezi if a pak nahraď/uprav na toto
If Not c.Value = "Název položky" Then
lb.AddItem c.Value
lb.Column(lb.ColumnCount - 1, lb.ListCount - 1) = c.Offset(0, 1).Value
lb.Column(lb.ColumnCount - 2, lb.ListCount - 1) = c.Offset(0, 4).Value
End If
citovat
#016212
avatar
Díky. Ještě se zeptám...potřebuji ještě do Listboxu vypsat sloupec "číslo položky" před názvem položky, ale nedaří se mě přijít na to jak. V listboxu jsem přidal další oblast ale v kódu už netuším jak kam co přidat. Chtěl jsem si tam sloupec přidat, ale metoda pokus omyl totálně selhala 8 7
Co znamenají ty hvězdičky ("*" & WhatText & "*")?
Kde se definuje list, ve kterém se "hledá", našel jsem v kódu "With Worksheets(ListWhere).Columns("B")" ale jak se pozná, že se jedná o list "Položky"
Díky za vysvětlení, trošku víc v tom plavu 1citovat
#016214
avatar
První část kódu

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim strWhat As String, lb As MSForms.ListBox
- slovo co se bude hledat
strWhat = TextBox1.Text
Set lb = ListBox1
- list na kterém se bude hledat
Dim arrLists, l
arrLists = Array("Položky")
-počet sloupcu co se zobrazí v LB
lb.Clear
lb.ColumnCount = 3
For l = LBound(arrLists) To UBound(arrLists)
-zavolani fce s parametry
FindTextStartedWith strWhat, arrLists(l), lb
Next
End Sub

fce.

Sub FindTextStartedWith(ByVal WhatText As String, ByVal ListWhere As Variant, lb As MSForms.ListBox)
Dim r As Range, c As Range, firstAddress
-hvězdičky jako zástupný znak
'pridano aby hledalo vse co obsahuje
WhatText = "*" & WhatText & "*"
-hledat ve sloupci B na listě co se zadl výše
With Worksheets(ListWhere).Columns("B")
Set c = .Find(WhatText, LookIn:=xlValues, LookAt:=xlPart, MatchCase:=False)

- nalezené shody přidej do pole
If Not c Is Nothing Then
firstAddress = c.Address
Do
If UCase(c.Value) Like UCase(WhatText) & "*" Then
If r Is Nothing Then
Set r = c
Else
Set r = Application.Union(r, c)
End If
End If
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With

If Not r Is Nothing Then
For Each c In r

-přidávání shod do seznamu LB
If Not c.Value = "Název položky" Then
lb.AddItem c.Value
lb.Column(lb.ColumnCount - 1, lb.ListCount - 1) = c.Offset(0, 1).Value
lb.Column(lb.ColumnCount - 2, lb.ListCount - 1) = c.Offset(0, 4).Value
End If

Next
End If
End Subcitovat
#016216
avatar
Jojo díky za vysvětlení...už jsem sloupec přidal. Ale když z formuláře nabídky vymažu veškeré řádky, takže mám formulář prázdný, tak položka nejde vložit. Pouze pokud vyplním první řádek nabídky manuálně, tak další vložení už jde přes UF v pohodě. Čím to je? Nenašel jsem nikde v kódu... od-do kterého řádku se má zapisovat 4citovat
#016220
avatar
Hledá prázdný řádek ve sl C od spodu,
pokud vše smažeš tak první položka se zapíše do řádku 22, ale jelikož je sloučený, jak sem si teď všim, tak tam nic není. Dej něco do toho skrytého řádku 23 a je po problému 5citovat
#016221
avatar
Jojo, to mě taky napadlo, ale tohle byl jen zkušební soubor a v té ostré verzi co mám (cca 20 Mb, tak jsem sem dal jen tu část, kde chci upravovat), jsou na tento list a hlavně na tyto řádky formuláře navázány vzorce do dalších formulářů (faktura aj.) takže by mě to dělalo všude hapr. Je to složité tam vložit start a konec zápisu?citovat
#016225
avatar
Předchozí problém s vkládáním jsem vyřešil. Takže je to OK. Ještě jednou dík za pomoc 1citovat
#016233
avatar
Ještě taková drobnost při vkládání do nabídky. Příkaz End na konci kódu zavře UF, pokud příkaz vymažu, je to ok, ale stále dokola se mě po vložení do formuláře zobrazuje MsgBox s upozorněním. Nešlo by to nějak ošetřit, aby se otevřel jen jednou pokud je UF Stále zobrazen a opakovaně vkládám položky z jednoho a toho samého výsledku vyhledaných položek?citovat

Strana:  1 2   další »

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