importazione dati da web



  • importazione dati da web
    di Tullio (utente non iscritto) data: 18/06/2015 13:49:32

    Buongiorno a tutti, avrei necessità di un grosso aiuto per un foglio di lavoro che sto cercando di creare, premetto che non so praticamente niente di excel, VBA, etc... quel poco che son riuscito a combinare fin qui è stato grazie a mooooolte ricerche sul web XD

    Scopo del foglio: importare da un certo sito attraverso api il massimo valore di acquisto ed il minimo valore di vendita di un dato oggetto.

    link (parziale) usato per recuperare i dati attraverso "connessione":

    item_prices2.txt?char_name=xxx&type_ids=34&station_ids=60003760&buysell=b&minmax=max

    al posto di "&type_ids=34" ho utilizzato "&type_ids=["ItemID"]" per vedere se riuscivo ad inserire una variabile (che mi viene richiesta ogni volta che importo dati per ogni id)

    il tutto funziona ma vi vorrei fare le seguenti domande:

    1) nonostante il sito dovrebbe ritornare il tutto come testo in un'unica riga mi ritrovo con la connessione excel che mi "invade la riga sottostante (vedi link immagine di seguito) la quale mi servirebbe per importare il prezzo massimo di acquisto (ed essendo occupata dalla prima excel non mi lascia sovrapporla)

    2) è possibile sostituire ["ItemID"], che ogni volta lancio la connessione mi apre il popup per immettere la variabile, con la cella corrispondente nella colonna A (ID) alla stessa riga in cui verranno scritti i dati scaricati?

    esempio: i dati scaricati saranno scritti a partire da D5, la "formula" mi deve prendere in automatico l'id da A5; se scritti in D7 l'id sarà preso da A7 e così via

    3) Se è possible copiare ed incollare queste "connessioni" in modo che la "formula" si aggiorni in automatico per tutte le rige (dato che sono più di 1000 id (oggetti) diversi inserirle a mano è da folli!)

    4) i dati devono aggiornarsi in toto ogni volta che il foglio di lavoro viene aperto (o tramite pulsante/script)

    immagine del foglio excel: s15.postimg.org/ep2jf95kb/Excel.jpg

    Oppure se esiste un modo meno macchinoso per fare il tutto :D

    Vi chiedo scusa per la stupidità della cosa e per la spiegazione "alla carlona"

    Vi ringrazio anticipatamente inoltre per ogni aiuto sarete in grado di fornirmi

    Tullio



  • di Carlone (utente non iscritto) data: 19/06/2015 07:51:36

    Con tutta la buona volontà non riesco ad aprire il link.
    Puoi precisare meglio il percorso.



  • di Tullio (utente non iscritto) data: 19/06/2015 08:06:33

    Ciao Carlone, scusa ma ho dovuto eliminare tutti gli " h t t p : / / " dai link o non mi faceva postare :S

    Ho allegato una .jpg che mostra il folgio in questione cmq :)



  • di Carlone (utente non iscritto) data: 19/06/2015 09:14:55

    Ciao, Tullio.
    Solo per completezza, ovviamenteavevo provato ad inserire il Link anteponendo " h t t p : / / "

    ma, la rispossta è sempre stata:
    Firefox non riesce a contattare il server www.item_prices2.txt.

    Verificare se l’indirizzo contiene errori di battitura del tipo ww.example.com invece di www.example.com
    Se non è possibile caricare alcuna pagina, controllare la connessione di rete del computer.
    Se il computer o la rete sono protetti da un firewall o un proxy, assicurarsi che Firefox abbia i permessi per accedere al web.

    Ritieni sia un problema di Firefox?



  • di Tullio (utente non iscritto) data: 19/06/2015 10:29:46

    Infatti non va manco a me... devo aver sbagliato a copiare il link :S

    ecco questo ritorna quello che deve

    api.eve-marketdata.com/api/item_prices2.txt?char_name=dio&type_ids=34&station_ids=60003760&buysell=b&minmax=max



  • di Carlone (utente non iscritto) data: 19/06/2015 13:12:03

    Potresti provare il questo codice; purtroppo non riesco a inserire il codice completo, in questo Forum non è possibile inserire il link completo, dovrai completare tu il link.

    Se poi il codice funziona come desideri, si può pensare di indicizzarlo.
     
    Option Explicit
    Sub WEB()
    Dim Price As String
        Cells.Clear
        Range("A1").Select
    Application.ScreenUpdating = False
        Price = "URL;api.eve-marketdata.com/api/item_prices2.txt?char_name=dio&type_ids=34&station_ids=60003760&buysell=b&minmax=max"
            With ActiveSheet.QueryTables.Add(Connection:=Price, Destination:=Range("$A$2"))
                .WebSelectionType = xlEntirePage
                .Refresh BackgroundQuery:=False
            End With
    Application.ScreenUpdating = True
    End Sub
    



  • di Tullio (utente non iscritto) data: 21/06/2015 11:50:34

    Scusa per il ritardo, è stato u sabato intenso :D

    Lo script funziona!! l'unica cosa è che cancella tutti gli eventuali altri dati inseriti nel foglio.

    Comunque credo di aver trovato l'uovo di Colombo: ho scoperto che posso scaricare tutti i prezzi ti tutti gli ID in un colpo solo (sia in formato TXT che XML), quindi dovrebbe essere molto più gestibile scaricarli tutti in un foglio separato ed usare una funzione molto più semplice dello script che mi hai molto gentilmente creato per copiare quelli che interessano nel foglio principale... o sbaglio?

    api.eve-marketdata.com/api/item_prices2.xml?char_name=dio&station_ids=60003760&buysell=s&minmax=min



  • di Carlone (utente non iscritto) data: 21/06/2015 22:01:49

    Buona sera, Tullio.
    Sono lieto che tu abbia risolto.

    Solo per rispondere alla tua domanda:
    Cit. l'unica cosa è che cancella tutti gli eventuali altri dati inseriti nel foglio.

    Il Codice cancella tutti Dati tramite l'istruzione:
    Cells.Clear
    Questo mi è servito per eseguire i miei test.
    Escludendo questa istruzione, i dati verranno preservati.

    Rimane un problema; i Dati ricavati da Web verranno scritti nelle celle A2:E2.
    Eventuali dati presenti nelle colonne A:E verrebbero spostati nelle colonne F:J, e questo potrebbe essere un problema.

    Conoscendo tutta la struttura del tuo file, si troverebbe una soluzione, ma, visto che risolto, meglio fermarsi qui.


    Tanto è dovuto per completezza.