< návrat zpět

MS Excel


Téma: Stiahnutie súboru z netu pomocou VBA rss

Zaslal/a 3.10.2015 10:12

Zdravím.

Chcel by som sa vás opýtať či je možne pomocou VBA stiahnuť súbor z netu.
Mam excel tabuľku ktorá sa pred spustením aktualizuje z CSV súboru. Makro si súbor upraví, použije potrebne dáta a už nepotrebný súbor zmaže. Zatiaľ to riešim mini App ktorú som si napísal v VB.NET. Ta stiahne súbor a spusti tabuľku. Súčasne riešenie je síce funkčne ale...

Pomocou VB.NET to mam riešene viz. obrázok.

Vďaka za radu.

Příloha: png27150_aaa.png (30kB, staženo 54x)
27150_aaa.png
Zaslat odpověď >

#027151
avatar
Možné to samozřejmě je. Pro odladění by se hodila adresa vstupního souboru z netu a požadovaná výsledná podoba výstupu (předpokládám, že to je "nějaká" excelská tabulka "někde" v sešitu, ale může to být libovolný, např. textový soubor).
Úplně bez programování by mohl posloužit i můj doplněk ImportZwebu, jehož využití je podmíněno jen tím, že požadovaný obsah z netu je možné pomocí Ctrl-C umístit do systémové schránky. Doplněk má řadu nástrojů, jak získaná data modifikovat do požadované výstupní podoby na listu excelského sešitu.
Pro opakované stahování téhož formátu je ovšem ta první cesta uživatelsky pohodlnější.citovat
#027152
elninoslov
Skúste si poupraviť toto, čo som dávnejšie použil.
Sub DownloadXML() 'Stiahnutie suboru XML z netu
Dim myURL As String 'Adresa suboru XML
Dim WinHttpReq As Object
myURL = "http://www.cnb.cz/cs/financni_trhy/devizovy_trh/kurzy_devizoveho_trhu/denni_kurz.xml"

On Error GoTo ErrorHandler 'Ak je chyba pri stahovani, ukladaní, ukonci

Set WinHttpReq = CreateObject("Microsoft.XMLHTTP")
WinHttpReq.Open "GET", myURL, False
WinHttpReq.Send 'Vytvor pripojenie

myURL = WinHttpReq.ResponseBody
If WinHttpReq.Status = 200 Then
Set oStream = CreateObject("ADODB.Stream")
oStream.Open
oStream.Type = 1
oStream.Write WinHttpReq.ResponseBody 'Preber subor
oStream.SaveToFile Application.ActiveWorkbook.Path & "\Kurz.xml", 2 'Uloz subor, prepis stary
oStream.Close
End If
Range("C3").Value = ZistiKurz 'Zapis kurz do C3
ErrorHandler:

End Sub


Ak si zadáte do Googlu dotaz, musí na Vás vyblafnúť množstvo riešení. Napr na MSDN:
Declare Function URLDownloadToFile Lib "urlmon" Alias _
"URLDownloadToFileA" (ByVal pCaller As Long, _
ByVal szURL As String, _
ByVal szFileName As String, _
ByVal dwReserved As Long, _
ByVal lpfnCB As Long) As Long

Function DownloadFile(URL As String, LocalFilename As String) As Boolean
Dim lngRetVal As Long
lngRetVal = URLDownloadToFile(0, URL, LocalFilename, 0, 0)
If lngRetVal = 0 Then DownloadFile = True
End Function

Sub downFLash()
Dim sURL As String
Dim LocalFilename As String
Dim filename As String

Const UNC = "C:\Documents and Settings\All Users\Documents\My Music\"

filename = "20050628091444_1.mp3"
sURL = "http://jrc.donga.com/nihao_service/200506/" & filename
LocalFilename = UNC & filename

Debug.Print DownloadFile(sURL, LocalFilename)

End Sub
citovat
#027154
avatar
Už to pracuje jak ma. Veľmi pekne vám ďakujem.

Riešenie od elninoslov je presne to čo som potreboval. Už dávnejšie som skúšal googlit a nepodarilo sa mi rozchodiť ani jedno riešenie. Preto som to spravil okľukou cez VB.NET a pomocnou app. V tej chvíli pre mňa najjednoduchšie riešenie. Nenapadlo ma zájsť sem. 1

Ešte raz vďaka.citovat
#027300
avatar
Tip: Pokud potřebujete tahat kurz z webu, můžete použít čistý HTML výpis pro nástroj Data / Z webu:

http://excelplus.net/data/cnb-denni-kurz.php

Jinak mám i vlastní funkci pro zjištění kurzu konkrétní měny z jejich výpisu.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