Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Pobieranie danych archiwalnych z kryteriami z Internetu do excela

dawidInsignia 08 Mar 2017 16:26 723 5
  • #1 08 Mar 2017 16:26
    dawidInsignia
    Poziom 2  

    Witam,

    Chciałbym pobrać dane ze strony internetowej gdzie są dane archiwalne (i wprowadza się kryteria sortowania tych danych) do excela.

    Wydaje mi się, że normalna formuła w excelu jest niewystarczająca. Próbowałem korzystając z zakładki "Dane" dalej "z sieci Web", następnie wprowadzałem adres strony skąd miały być pobrane dane i udawało się pobrać tylko dane z jednego dnia. Przy zmianie daty nic się nie działo. Dodam, że przy wprowadzeniu adresu strony pojawiło mi się kilka okienek z informacją o błędzie skryptu na stronie. Próbowałem raz uruchomić procedurę klikając tak - kontynuuj uruchamianie skryptów na tej stronie, drugi raz bez akceptacji. Niestety nic to nie pomogło. Po zmianie daty na stronie internetowej i odświeżeniu danych w excelu dane się nie zmieniły.

    Podam konkretny przykład: chodzi mi o pozyskanie danych dotyczących wartości jednostek uczestnictwa konkretnych funduszy inwestycyjnych. Na stronie money /fundusze/archiwum/data/ (niestety nie mogłem wpisać całego adresu internetowego ze względu na regulamin) istnieje możliwość filtrowania wybranych funduszy. Mnie interesuje archiwum funduszy wg daty notowania, typ funduszy - krajowe akcji, grupa funduszy - uniwersalne (Polska).
    Chciałbym, aby po zmianie daty ściągnęły mi się do excela dane dotyczące bieżącej wartość jednostki uczestnictwa zawartych tam funduszy (im wcześniejszy okres tym funduszy mniej) i zapisywały do kolumny przy nazwach funduszy, po zmianie daty, aby nowe wartości jednostek pobierane były do sąsiedniej kolumny na prawo obok kolumny z pobranymi już danymi, itd. Lub chociaż, aby po zmianie daty na stronie internetowej pojawiały się w excelu nowe dane.

    Nie wiem czy w ogóle jest możliwe napisanie takiego programu w VBA. Być może, jeżeli na stronie internetowej są pola do filtracji danych to nie jest możliwe zautomatyzowanie pobierania takich danych (?).

    Z góry dziękuję za wszelkie podpowiedzi, lub kod.

    Pozdrawiam

    Dawid

    0 5
  • #2 09 Mar 2017 06:27
    JRV
    Specjalista - VBA, Excel

    dawidInsignia napisał:
    czy w ogóle jest możliwe napisanie takiego programu w VBA

    Co do zasady być może. Po pierwsze znać adres strony

    0
  • #3 09 Mar 2017 07:55
    adamas_nt
    Moderator Programowanie

    JRV napisał:
    Po pierwsze znać adres strony
    Po drugie przegryźć się przez kod (Ctrl+u w Firefox), jeśli nie można nic zdziałać kreatorem Link

    0
  • #4 09 Mar 2017 13:12
    dawidInsignia
    Poziom 2  

    Adres strony, z której chciałbym pobrać dane to http://www.money.pl/fundusze/archiwum/data/ w ustawieniu Archiwum wg daty notowania, typ funduszy - krajowe akcji, grupa funduszy - uniwersalny (Polska). Chciałbym zmieniając datę na stronie pobierać do Excela dane, które na tej stronie się wyświetlają, dokładniej nazwy funduszy oraz ich bieżące wartości jednostek uczestnictwa.

    Dodano po 6 [minuty]:

    Dla mnie ten kod to magia. Nawet nie wiem czego miałbym szukać. Znam tylko proste użyteczne instrukcje typu: If then, Select case, Do while, itp.

    0
  • Pomocny post
    #5 09 Mar 2017 21:25
    marcinj12
    Poziom 40  

    W załączniku prosty plik, który używam jako szablon przy tego typu zadaniach. Wykonuje zapytanie typu POST do strony - ta, którą podałeś, akurat z niego korzysta - i odczytuje odpowiedź. Parametry POST i ich wartości można zmodyfikować podając je w tabelce.

    Kod: vbscript
    Zaloguj się, aby zobaczyć kod
    Program można łatwo przerobić na podmianę wartości parametrów. Jak jesteś sprytny, to w zmiennej strResponse masz odpowiedź ze strony z kodem HTML, z którego możesz sobie wyłuskać interesujące Cię dane wyrażeniem regularnym lub operacjami na napisach. Jeżeli jednak "kod to magia", to cóż... :)

    0
  • #6 10 Mar 2017 07:22
    dawidInsignia
    Poziom 2  

    Bardzo dziękuję za te wskazówki, będę próbował

    0