Příspěvky uživatele


< návrat zpět

Jen jeste na dotaz na to VBA.

Ac nejsem programator, a VBA neumim, podarilo se mi nejak slepit z par kodu nasledujici script, ktery je schopen stahnout hodnotu (cenu) ze sestavene URL adresy pro jeden ticker (spolecnost).

Mohl by mi nekdo poradit, jak docilit toho, aby to po stisknuti tlacitka projelo vsechny uvedene tickery v tom danem sloupci (v prilozenem prikladovem souboru jsou pouze 3) a jejich hodnoty byly vypsany do vedlejsiho sloupce?

Snazil jsem se toho docilit nejak pomoci For i = 8 to 10 ... Cells(i, 2) ... Next i ale tohle mi nejak nefungovalo a hadalo se s nacitanim tech webovych stranek a extrakci hodnoty.

Predem dekuji za pomoc.

Dekuji za vas cas a pomoc.

Dekuji, jak rozsirim tu zelenou tabulku, kdyz bych rozsiril tu modrou vstupni?

A nejak pomoci toho VBA?

Snazil jsem se neco vygooglit, ale nic podobneho tomu, co bych potreboval/chtel jsem nenasel.

Narazil jsem akorat tady na tenhle soubor, kde to predem definovane tickery taha historicka data pro nejaky casovy usek definovany od/do. A jeste navic jsou ta data tahana do samostatnych listu vytvorenych pro kazdy ticker zvlast.

Ale ja nepotrebuji oteviraci/zaviraci cenu atd, jenom tu posledni/aktualni a vypsat ji do sloupce vedle vstupu. Pro jeden ticker jednu cenu, co je momentalne aktualni (ta zvyraznena na webove strance).

Dekuji za odpoved.

Zdravim,

vubec neumim programovat ve VBA, ale zajimalo by me, zda-li by slo nejak jednoduse udelat nasledujici.

Ve sloupci A (treba A3:A13) bych mel seznam tickeru akcii a nekde nad tim tlacitko "Update", na ktere kdybych kliknul, tak by se mi do sloupce B (B3:B13) natahaly aktualni ceny danych tickeru (spolecnosti).

Slo by mi o ceny z finance.yahoo.com, ale jelikoz nekdy v roce 2017 zrusili API pro pristup k datum, tak by to snad slo nejak udelat pres parsovani te webove stranky a vytazeni daneho jednoho elementu s cenou.

Ve sloupci "A" by bylo napr:

BAS.DE
JNJ
SAN.MC
a dalsi

a pro jednotlive zaznamy se by se pro kazdy radek do sloupce B stahla cena uvedena na webovych strankach co je zvyraznena velkym tucnym pismem.

Tedy adresa je vzdy stejna, jen se meni ten ticker, ktery by byl uveden ve sloupci A.

Slo by tohle nejak jednodusse udelat?

Dekuji za odpoved.

Zkusil jsem neco zjednoduseneho pouze pro jednoho zamestnance, a myslim, ze to funguje, tak verim ze nejaka podobna logika by sla aplikovat na cely ten seznam.

Zkus kouknout na tohle, asi neco podobneho

Dekuji za odpoved.

Jde mi o to, ze chci pouzit vzorec, kde E6:E13 bude predem definovany seznam, plus k tomu potrebuji pridat jeden extra zaznam (napr. AAA), ale nechci jej pridavat do toho seznamu ve sloupci E. Tedy neco ve smyslu

=SUMA(SUMIF($B$6:$B$13, {$E$6:$E$13, "AAA"}, $C$6:$C$13))

Obecne by slo asi i dotaz formulovat, zda-li existuje nejaka moznost, jak nahradit libovolny parametr kterekoliv funkce textem umistenym v jine bunce.

S INDIRECT to nefunguje.

Dobry den,

pro vysvetleni zjednoduseny priklad:

Mam dva listy.

V jednom (List1) jsou definovany skupiny a jejich clenove: napr. jednotlive domy a jejich najemnici:

Dum 1:
Novak (A3)
Svoboda (A4)
Dvorak (A5)

Dum 2:
Pokorny (A7)
Kavan (A8)
Pavlicek (A9)

Ve druhem listu (List2) je velky datovy seznam o nekolika sloupcich: napr. datum, jmeno, rodne cislo, telefon, obdrzena platba, atd.

A v novem liste chci udelat statistiky plateb od jednotlivych obyvatel dle domu.

Tedy bych chtel:

Dum 1: Suma vsech plateb od Novak, Svoboda, Dvorak.

Az potud by to bylo jednoduche, protoze by stacilo dat: =SUM(SUMIF(List2!$B$6:$B$13, List1!$A$3:$A$5, List2!$C$6:$C$13))
Kde List2!B jsou jmena a List2!C platby a List1!A3:A5 je preddefinovany seznam najemniku domu 1. Pokud tohle zadam jako maticovy vzorec (CTRL+SHIFT+ENTER), tak to funguje dobre.

Stejne by bez maticoveho vzorce fungovalo =SUM(SUMIF(List2!$B$6:$B$13, {"Novak", "Svoboda", "Dvorak"}, List2!$C$6:$C$13)). Toto reseni bych preferoval, tedy bez maticove funkce s vypisem jednotlivych podminek pro scitani.

Problem nastava, ze v nekolika pripadech, napr. u Domu 3 z nejakeho duvodu potrebuji pripocitat poplatky od nekoho, kdo uz v listu A neni, byl ze seznamu odstranen, treba "Novotny".

Tedy neco ve smyslu: =SUM(SUMIF(List2!$B$6:$B$13, List1!$A$3:$A$5 + "Novotny", List2!$C$6:$C$13)), abych v temer vsech pripadech pouzil scitani dle definovanych obyvatel pro jednotlive domy v Listu 1, ale v par vyjimkach pridal jmeno, ktere tam uz neni.

Rikal jsem si, ze pokud by bylo soucasti vzorce {"Novak", "Svoboda", "Dvorak", "Novotny"}, tak by to fungovalo spravne, a tedy jsem se snazil vygenerovat dany textovy retezec pomoci funkce,

=CONCATENATE("{",CHAR(34),TEXTJOIN(""",""",TRUE,List1!$A$3:$A$5), CHAR(34), ",", """Novotny""", "}")

ktera mi da pozadovany retezec, tedy '{"Novak", "Svoboda", "Dvorak", "Novotny"}' s tim, ze pouziji definovany seznam najemniku v Listu 1 a pouze na konci pridam potrebne jmeno.

Pokud by tato funkce sla nejak vlozit do vzorce

=SUM(SUMIF(List2!$B$6:$B$13, {"Novak", "Svoboda", "Dvorak", "Novotny"}, List2!$C$6:$C$13))

a nahradit samotny vycet tedy cast "{ ... }", bylo by to presne to, co potrebuji.

Neco ve smyslu:
=SUM(SUMIF(List2!$B$6:$B$13, CONCATENATE("{",CHAR(34),TEXTJOIN(""",""",TRUE,List1!$A$3:$A$5), CHAR(34), ",", """Novotny""", "}"), List2!$C$6:$C$13))

Jen tu generovanou cast nahrazujici seznam v "{ ... }" mi to nebere. To je to oc mi jde, jak nahradit tu cast vzorce textovym vyctem generovanym jinym vzorcem.

Snad uz je to pochopitelnejsi.

Dekuji za odpoved.

Dobry den,

V priloze je excel, kde pomoci SUM(SUMIF()) scitam cisla ve sloupci C (C6:C13) v zavislosti na hodnotach ve sloupci B (B6:B13) = pricti, pokud je bunka ve sloupci B rovna nektere z preddefinovanych hodnot (B2:B4).

V bunce F3 je vzorec "=SUM(SUMIF($B$6:$B$13, {"AAA","BBB","CCC"}, $C$6:$C$13))", ktery funguje spravne, ale rad bych tu OR podminku "{"AAA","BBB","CCC"}" nahradil funkci, ktera by byla generovana ze zadaneho rozsahu bunek s jednotlivymi podminkami (tedy B2:B4).

Kdyz si dany text "{"AAA","BBB","CCC"}" vygeneruji z bunek B2:B4 pomoci funkce "=CONCATENATE("{",CHAR(34),TEXTJOIN(""",""",TRUE,$B$2:$B$4), CHAR(34), "}")" tak jak tuto funkci mohu pridat k funkci SUM(SUMIF() tak, aby to fungovalo?

Monentalne to mam v bunce F6, ale nefunguje.

Dekuji za odpoved a vysvetleni.

Dobry den,

dekuji za Vasi odpoved, na soubor se v co nejkratsi mozne dobe podivam a v pripade neporozumeni reseni ozvu.

Abych Vam to zjednodusil, v priloze je excel se vzorci, jak resim kontrolu prestupneho roku a zmeny casu na letni/zimni. Snad se Vam to bude hodit.

Jeste jednou diky a dam vedet, jak chapu Vase reseni.

S pozdravem
Ondra


Uživatelské menu

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

Menu

On-line nástroje

Formulář Faktura

Formulář Faktura IV

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

Aktivní diskuse

Vynásobit hodnoty kurzem - Power Query

Alfan • 26.4. 7:56

Relativní cesta - zdroje Power Query

Alfan • 26.4. 7:54

Vynásobit hodnoty kurzem - Power Query

elninoslov • 26.4. 7:54

Vynásobit hodnoty kurzem - Power Query

lubo • 25.4. 19:18

Relativní cesta - zdroje Power Query

elninoslov • 25.4. 15:12

Relativní cesta - zdroje Power Query

Alfan • 25.4. 15:08

Relativní cesta - zdroje Power Query

elninoslov • 25.4. 14:21