Condividi:        

Macro per importare dati da sito web (dati origine dinamici)

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Macro per importare dati da sito web (dati origine dinamici)

Postdi Fabrizio91 » 07/05/15 17:38

Salve a tutti, sono Fabrizio.
Ho un piccolo problema con Excel da risolvere mediante una Macro.
Ho letto un bel po' di post su questo forum, ma non sono riuscito a trovare la soluzione completa al mio problema (mi avvicino per la prima volta a VBA).
Avrei bisogno di importare i dati da questo pagina web (http://www.statto.com/football/odds/coupon). Con la semplice importazione dati di excel non è possibile farlo. In più i dati su questa pagina web sono connessi ad un evento, nel momento in cui questo evento comincia (quindi ad una certa ora) i dati vengono cancellati.
Avrei bisogno perciò di una macro che: 1) prelevi i dati dal sito: 2)si aggiorni ogni tot minuti; 3) riesca a conservare i dati che vengono cancellati (copiandoli o lasciandoli da qualche parte nel foglio). Spero di essere stato abbastanza esaustivo nella spiegazione. Grazie mille in anticipo.
Fabrizio91
Newbie
 
Post: 4
Iscritto il: 07/05/15 17:19

Sponsor
 

Re: Macro per importare dati da sito web (dati origine dinam

Postdi Anthony47 » 07/05/15 22:04

Ciao Fabrizio91, benvenuto nel forum.
Guarda questa discussione: viewtopic.php?f=26&t=104420
Una macro che dovrebbe portare su Foglio2 del tuo workbook tutte le tabelle reperibili a quell' url e' in questo messaggio: viewtopic.php?f=26&t=104420#p609552
Devi ovviamente modificare la riga myURL in
Codice: Seleziona tutto
    myURL = "http://www.statto.com/football/odds/coupon"     '<<<<
La macro ti porta il contenuto, la formattazione e la presentazione dei dati la farai secondo le tue preferenze.

Per importare ogni N minuti farai una macro "On Time" che scheduli ogni N minuti la Sub GetWebTab2.

Per salvare il contenuto corrente, in testa alla Sub GetWebTab2 inserisci la riga marcata <<<ADD in questa posizione:
Codice: Seleziona tutto
    Set IE = CreateObject("InternetExplorer.Application")
    '
    Sheets("Foglio2").Copy After:=Sheets(Worksheets.Count)         '<<<ADD
    With IE
'etc etc

Questo creera' una copia di Foglio2 prima di importare i nuovi valori

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Macro per importare dati da sito web (dati origine dinam

Postdi Fabrizio91 » 07/05/15 23:42

Grazie Anthony,
Allora la macro funziona, però ci sono delle piccole correzioni da fare, sempre se sono realizzabili.
1) il pop-up di internet explorer si può togliere? (mi servirebbe un aggiornamento continuo anche in mia assenza)
2) per quanto riguarda i dati che dall'origine vengono cancellati, invece di fare una copia del foglio prima dell'aggiornamento, è possibile far copiare solo la riga (o le righe) che vengono cancellate in cima al foglio? (quindi mantenere un unico foglio)
3) è possibile applicare delle formule a questi dati senza che ad ogni aggiornamento della macro vengano cancellate? ( alla destra dei dati ho intenzione di inserire delle formule, quindi una sezione del foglio in cui vengono continuamente aggiornati i dati e un'altra in cui ci sono le formule).
Grazie ancora.
Fabrizio.
Fabrizio91
Newbie
 
Post: 4
Iscritto il: 07/05/15 17:19

Re: Macro per importare dati da sito web (dati origine dinam

Postdi Anthony47 » 11/05/15 01:12

InternetExplorer compare durante la query e scompare a conclusione; si puo' cambiare la proprieta' ".Visible", ma questo rischia di lasciare sessioni aperte di cui l' utente non e' conscio.

Non ho idea di quali dati siano utili e quali inutili, quali cambiano e quali sono statici; quindi per il salvataggio ho proceduto alla copia dell' intero foglio.
In linea di massima, a completamento della macro si puo' eseguire un'altra macro autoregistrata che cancella cose inutili, o copia quelle utili in altri fogli accodandole a quanto gia' registratovi.

Quanto alle formule io le inserirei in un altro foglio facendo riferimento ai dati di Foglio2.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Macro per importare dati da sito web (dati origine dinam

Postdi Fabrizio91 » 11/05/15 14:17

Grazie anthony, vedo cosa riesco a fare.
ciao.
Fabrizio91
Newbie
 
Post: 4
Iscritto il: 07/05/15 17:19

Re: Macro per importare dati da sito web (dati origine dinam

Postdi Fabrizio91 » 19/06/15 12:40

Ciao anthony, dopo un pò di tempo sono tornato a lavorare su questo file e non sono ancora riuscito a risolvere il problema. I dati che devo importare sono in questa pagina (http://www.statto.com/football/odds/coupon). In base all'orario i dati vengono cancellati. (esempio: se una partita comincia alle 15:00:00, alle 15:00:01 questa sparisce dalla pagina). Il mio quesito è questo: è possibile tramite la tua macro mantenere (o spostare in alto) la partita che alle 15:00 viene eliminata?
Grazie per la pazienza. Fabrizio.
Fabrizio91
Newbie
 
Post: 4
Iscritto il: 07/05/15 17:19

Re: Macro per importare dati da sito web (dati origine dinam

Postdi Anthony47 » 20/06/15 01:54

Premesso che non ho idea di quale sia il tracciato record dei dati disponibili sul sito (l' url indicato mi segnala l' errore 404 Page Not Found), io procederei in questo modo:
-uso un foglio "RIEP" per accumulare i risultati importati dal sito
-su una nuova importazione controllo quele e' l' orario minimo delle righe importate
-sul foglio RIEP si scansionano le righe presenti e si cancellano quelle che hanno un orario superiore o uguale al minimo di quanto importato.
-si accodano su foglio RIEP i nuovi dati importati.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "Macro per importare dati da sito web (dati origine dinamici)":


Chi c’è in linea

Visitano il forum: Nessuno e 96 ospiti