< návrat zpět

MS Excel


Téma: VBA-Vyhledání hodnot v buňce rss

Zaslal/a 28.4.2015 19:07

Dobrý den.
Prosím o radu. V buňce je několik hodnot spolu s textem, který hodnoty identifikuje. V každé buňce mohou být hodnoty na jiných pozicích. Potřebuji najít hodnoty, nevím si rady. V příloze ukázka, popsaná v module. Prosím jen makrem. Velice děkuji
Vladimír Krist

Příloha: zip24681_najdi_hodnoty_v_bunce.zip (13kB, staženo 41x)
Zaslat odpověď >

#024682
avatar
No tých čiarok si tam nemusel toľko dávať 4
Ešte malá úprava

Public Function cislo(odkial As String, co As String) As String
Dim od As Long, po As Long
od = InStr(1, odkial, co, vbTextCompare) + Len(co)
po = InStr(od + 1, odkial, " ")
If po = 0 Then po = Len(odkial)
cislo = Trim(Mid(odkial, od + 1, po - od))
If Right(cislo, 1) = "," Then cislo = Left(cislo, Len(cislo) - 1)
End Function
Příloha: zip24682_najdi_hodnoty_v_bunce.zip (14kB, staženo 52x)
citovat
#024683
Opičák
to co vytvořil "marjankaj" je rozhodně elegantnější, ale obojí funguje na podobném principu.
Příloha: zip24683_najdi_hodnoty_v_bunce.zip (16kB, staženo 52x)
citovat
#024684
avatar
Pánové, řešení od vás je naprosto úžasné. Tak tam bych ve svých "experimentech" rozhodně nedošel. Pro marjankaj: text v buňce dostávám od externí firmy i s těmi čárkami.
Moc děkuji za pomoc.citovat
icon #024687
eLCHa
=HODNOTA(ČÁST(DOSADIT($B4;", ";" ");NAJÍT(MALÁ(C$1);MALÁ(DOSADIT($B4;", ";" ")))+DÉLKA(C$1)+1;IFERROR(NAJÍT(" ";ČÁST(DOSADIT($B4;", ";" ");NAJÍT(MALÁ(C$1);MALÁ(DOSADIT($B4;", ";" ")))+DÉLKA(C$1)+1;1000));1000)))=VALUE(MID(SUBSTITUTE($B4,", "," "),FIND(LOWER(C$1),LOWER(SUBSTITUTE($B4,", "," ")))+LEN(C$1)+1,IFERROR(FIND(" ",MID(SUBSTITUTE($B4,", "," "),FIND(LOWER(C$1),LOWER(SUBSTITUTE($B4,", "," ")))+LEN(C$1)+1,1000)),1000)))citovat
#024689
avatar
&eLCHa
Tiež ma napadlo riešiť to vzorcom, ale zadávateľ písal "jen makrem", tak som sa nesnažil vymýšľať vzorec. 1citovat
icon #024690
eLCHa
Máte pravdu ;) With Range("C2:E5")
.FormulaR1C1 = "=VALUE(MID(SUBSTITUTE(RC2,"", "","" ""),FIND(LOWER(R1C),LOWER(SUBSTITUTE(RC2,"", "","" "")))+LEN(R1C)+1,IFERROR(FIND("" "",MID(SUBSTITUTE(RC2,"", "","" ""),FIND(LOWER(R1C),LOWER(SUBSTITUTE(RC2,"", "","" "")))+LEN(R1C)+1,1000)),1000)))"
.Value = .Value
End With 'Range("C2:E5")
citovat
#024703
avatar
Velmi si Vážím vaší ochoty. Prozkoumám i vzorec i další řešení. Ještě jednou díky.citovat

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