Stránka 1 z 1

VBA Excel - načtení CSV souboru z webu do pole.  Vyřešeno

Napsal: 05 říj 2010 18:15
od vonv
Prosím o radu, jak ve VBA pro Excel 2007 načíst soubor CSV, který je umístěn na webu do pole. Zatím jsem nikde (ani knížky ani web) nenašel (a ani mě nenapadl) kloudný způsob jak to udělat napřímo.

V tuto chvíli načítám z Yahoo CSV soubor pomocí příkazu:
ActiveSheet.QueryTables.Add(Connection:="URL;http://ichart.finance.yahoo.com/table.csv?s=" & ticker(r) & "&d=" & month(stop_date) - 1 & "&e=" & day(stop_date) & "&f=" & year(stop_date) & "&g=d&a=" & month(start_date) - 1 & "&b=" & day(start_date) & "&c=" & year(start_date) & "&ignore=.csv", Destination:=ActiveCell.Offset(1, r - 1))

Tím se mi načte každý řádek se všemi oddělenými daty do jedné buňky a pak data separuji a načítám do dále zpracovávaného pole. Já bych raději upřednostnil aby se mi jednotlivá data oddělená čárkou načetla rovnou do pole. Jedná se o úsporu a urychlení vykonání kódu.

Příklad dvou řádků dat:
Date,Open,High,Low,Close,Volume,Adj Close
2010-09-30,135.50,136.11,133.67,134.14,6425800,134.14



Díky za rady a inspiraci.

Re: VBA Excel - načtení CSV souboru z webu do pole.

Napsal: 05 říj 2010 18:54
od navstevnik
Jako voditko muze poslouzit viewtopic.php?f=61&t=38704

Re: VBA Excel - načtení CSV souboru z webu do pole.

Napsal: 05 říj 2010 19:36
od vonv
Díky za tip...

Nicméně pro mě je to vyšší dívčí... :smile:

Pokud se v tom někdo kapku víc vyzná, prosím o polopatické vysvětlení. Tohle v mých knížkách není a na netu popis všech funkcí zatím nenalézám.

Re: VBA Excel - načtení CSV souboru z webu do pole.

Napsal: 05 říj 2010 20:26
od vonv
pomalu tomu přicházím na kloub metodou pokus omyl, ale kdyby mi chtěl někdo vysvětlit zejména následující řádky, tak budu vděčný :D :

Kód: Vybrat vše

Set objHTTP = CreateObject("MSXML2.XMLHTTP")
  Call objHTTP.Open("GET", URL, False)
  objHTTP.Send


Díky.

Re: VBA Excel - načtení CSV souboru z webu do pole.

Napsal: 05 říj 2010 21:39
od navstevnik
No Google mi nasel po zadani Set objHTTP = CreateObject("MSXML2.XMLHTTP") toto: http://blogs.technet.com/b/heyscripting ... sible.aspx a najdes tam odpoved na dotaz (kdyz tak pouzij GoogleTranslator):
We begin by assigning the URL for the Script Center to a variable named strURL. Next we create an instance of MSXML2.XMLHTTP, a COM object that provides a way for client computers to interact with HTTP servers. We then call the Open method, passing three parameters: “GET” (which means to retrieve information from the server); strURL, the variable holding the URL to the Script Center home page; and FALSE, to make the call synchronous. After that we use the Send method to send our request to the HTTP server.

Re: VBA Excel - načtení CSV souboru z webu do pole.

Napsal: 08 říj 2010 21:14
od vonv
Díky!
Hotovo a funkční...

:bigups: