WWW pro školy
Jak na Office - tutoriály, video návody











Vytvoř si  geekové tričko

Poradna - Makro na vytažení názvu obchodu s nejnižší cenou

hlavní kategorie | zpět | + odpovědět na toto téma
Makro na vytažení názvu obchodu s nejnižší cenou - diskuze na toto téma
Ahoj, uměl by někdo udělat makro, které mi vytáhne z odkazů ve sloupci A, vždy hned vedle do sloupce B jméno obchodu který to prodává nejlevněji? Odkazy jsou na web heureka.cz a vypadjí takto > https://knihy.heureka.cz/drz-hubu-a-padluj-vodacke-povidky/#o=2 a konkrétně u tohoto odkazu by tedy vedle ve sloupci B bylo napsáno "MegaKnihy.cz" Asi něco takového není v excelu možné, ale raději se zeptám. Děkuji za pomoc.

elninoslov | 10.6.2018 09:37  
 
 
Možno nie najlepšie ale funkčné podľa požiadaviek, pomocou vlastnej UDF.
Odpověď
betcup.cz | 10.6.2018 10:42  
 
 
Tyjo, dobrý. A můžeš mi nějak osvětlit, jak to přesně funguje? :-) A druhá věc, uměl bys něco takovýho udělat i na web?
Odpověď
elninoslov | 10.6.2018 12:50  
 
 
Funguje to na jednoduchom princípe rozdelenia HTML kódu stránky. Stiahne to HTML kód do premennej HTML. A následne cez niekoľkonásobnú funkciu Split postupne rozdeľuje ten kód na stále menšie a menšie časti, pomocou rozdeľovacích Tagov, ktoré som si manuálne pozrel v kóde, že ako sú rozmiestnené na stránke. Čo k tomu viac napísať? Na www to ale neviem urobiť.
Odpověď
betcup.cz | 10.6.2018 18:10  
 
 
A to všechno dělá ta funkce "PROČISTIT"? Já tam totiž nic jiného, žádnou další funkci nebo makro v tom excelu nevidím.
Odpověď
elninoslov | 10.6.2018 19:01  
 
 
Nie. Tam je mnou vytvorená UDF (User Defined Function). Ľavý Alt+F11, pod projektom s názvom súboru rozkliknite Modules, dvojklik na Module1 - a tam je naprogramovaná funkcia NAZOV_ESHOPU. Je tam cez objekt "MSXML2.XMLHTTP" načítaný kód stránky. Tento kód je postupne rozdelený funkciou "Split" na časti, vždy nejakým oddeľovacím reťazcom v kóde (tieto reťazce som si manuálne v kóde dohľadal). Zjednodušene : viem, že skupina tagov v kóde, pod ktorou je podskupina s cenou, je za znakmi "ABCD", teda kód rozdelím rozdeľovacím textom "ABCD", vznikne pole reťazcov. Následný reťazec (poradové číslo 1, lebo sa začína od 0) opäť rozdelím oddeľovačom podskupiny napr. "DEFG"... A takto, až sa dostanem na tú cenu, ktorá je vždy umiestnená v rovnakom bloku kódu stránky. Neviem Vám to lepšie vysvetliť.
Odpověď
betcup.cz | 10.6.2018 21:10  
 
 
To je chytré. A co když se ta cena v tom nejlevnějším obchodu změní, je potřeba tu funkci v té buňce znovu odentrovat, a nebo se to mění nějak automaticky? A poslední věc, šlo by to udělat i kdyby ten odkaz byl v tomto formátu > https://www.heureka.cz/?h%5Bfraze%5D=Namman+Muay+thajsk%C3%BD+kr%C3%A9m+100+g&min=&max=175&o=1 , šlo by to prohledávat i ty ceny v obchodech které jsou mimo tu hlavní kategorii?
Odpověď
elninoslov | 11.6.2018 08:13  
 
 
Zmena prebehne pri zmene linku. Dá sa naprogramovať časovač, na každých napr. 10 min. Ale to čo vy chcete, sa cez Excel určite nerobí. Vy chcete v reálnom čase monitorovať veľa produktov. Na to má možno Heureka nejaké svoje API, prípadne to ma cez Košík, alebo iné webové rozhranie vyriešené (ak to má). Načítavať v reálnom čase takto nieje možné, to by zahltilo linku aj Excel. Zmente si tretí rozdeľovací tag z "
" na "
elninoslov | 11.6.2018 08:18  
 
 
Tak prikladám ten popis v Exceli, lebo tu mi neberie text, v ktorom sa nachádzajú formátovacie znaky.
Odpověď
betcup.cz | 12.6.2018 07:48  
 
 
A nešlo by to makro udělat přes tlačítko? Bylo by to možné? Děkuji.
Odpověď
betcup.cz | 12.6.2018 07:51  
 
 
Myslím, pokaždé když stisknu tlačítko (spustím makro), tak aby se ta buňka "B" (nejlevnější obchod u produktu) aktualizovala. To by šlo?
Odpověď
elninoslov | 12.6.2018 13:30  
 
 
Tak potom cca takto
Odpověď
betcup.cz | 12.6.2018 20:05  
 
 
Paráda :-) Díky. A ještě teda jsem si všimnul jedné věci, kterou jsem nějak nedomyslel, že někdy tam jsou ty nejnižší ceny stejné u několika obchodů, tak jestli by bylo možné tam do té buňky napsat všechny ty obchody (oddělené třeba čárkou). A do sloupce "C" bych prosil tu cenu uvést, pokud už neotravuju příliš. Děkuji. --- (Mimochodem, tento kód v excelu, je to podobné normálnímu kódu kterým se programují www stránky? Já vím že vy jste říkal že to neděláte, ale kdybych našel někoho kdo programuje, bylo by možné tu jeho práci urychlit tím, že by to z toho excel kódu nějak "překopíroval"? Možná se ptám hloupě :-) Děkuji)
Odpověď
elninoslov | 13.6.2018 10:48  
 
 
To je už podstatne zložitejšie
Odpověď
betcup.cz | 14.6.2018 01:01  
 
 
Bezva, děkuju. Koukám že v excelu jde dělat docela hodně věcí :-) Pro mě do letoška nepředstavitelných, žil jsem celou dobu v tom že je to jednoduchý tabulkový nástroj, který používaj babky na úřadech pro zápis statistických údajů a podobně.
Odpověď