Pagina 1 di 2 12 UltimaUltima
Risultati da 1 a 30 di 44

Discussione: Importazione dati da web (da più link)



  1. #1
    L'avatar di cocci
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    Pisa
    Età
    41
    Messaggi
    26
    Versione Office
    2010
    Likes ricevuti
    1

    Importazione dati da web (da più link)

    Ciao a tutti,
    avrei bisogno di chiedervi un aiuto, più che altro una dritta, per un progetto che intenderei realizzare.
    Cerco di spiegarvi in poche parole cosa vorrei fare.
    Vorrei realizzare un foglio excell in grado di:
    1) Importare automaticamente i dati da questo sito: http://www.betexplorer.com/. In particolare vorrei importare i dati dei match che si sono disputati negli anni passati (sarebbe sufficiente gli ultimi 5 anni) nei campionati di varie nazioni. Ad esempio per la serie a italiana vorrei importare i dati da questi link:
    Stagione 2015-2016: http://www.betexplorer.com/soccer/it...-2016/results/
    Stagione 2014-2015: http://www.betexplorer.com/soccer/it...-2015/results/
    Stagione 2013-2014: http://www.betexplorer.com/soccer/it...-2014/results/
    Stagione 2012-2013: http://www.betexplorer.com/soccer/it...-2013/results/
    Stagione 2011-2012: http://www.betexplorer.com/soccer/it...-2012/results/
    2) Una volta importati i dati effettuare delle elaborazioni sui risultati importati dai vari campionati.

    Qualcuno potrebbe darmi dei suggerimenti su come fare per importare tali dati? Ad esempio sarebbe perfetto se posse possibile impostare in un file di configurazione (ad esempio di testo) le url dei campionati da importare.
    Secondo voi sarebbe fattibile far importare un elevato numero di campionati (ad esempio 100/150)? oo ci otrebbero essere problemi di memoria o altro?

    Premetto che un pò di programamzione me ne intendo (anche se non excel).

    Grazie in anticipo a tutti coloro che vorranno/potranno darmi una mano
    Ultima modifica fatta da:cromagno; 21/05/16 alle 12:07 Motivo: Modificato titolo originale: "Dritte per nuovo progetto"
    Invia MPPM 

  2. #2

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4019
    Versione Office
    2013
    Likes ricevuti
    1228
    Likes dati
    923

    Re: Dritte per nuovo progetto

    Ciao cocci,
    senza provare posso solo dirti che la cosa è fattibile...

    In un mio file, devo aggiornare (tramite codice) una ventina di query (per importare dati dal web) ed ho notato che se effettuavo gli aggiornamenti senza pause... si bloccava tutto senza possibilità di proseguire, probabilmente per i motivi che hai pensato potessero dare problemi (memoria presumibilmente).
    Ho risolto con "DoEvents":
    https://msdn.microsoft.com/it-it/lib...or=-2147217396

    Comunque, i vari url li metterei in un foglio all'interno dello stesso file non in documento esterno.
    O ancora meglio, se gli url si differenziano solo per l'anno del campionato, potresti fare un ciclo "For...next" ed incrementare l'anno ad ogni ciclo... modificando quindi la stringa di testo che richiama l'url.

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
    Invia MPPM 

  3. #3
    L'avatar di cocci
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    Pisa
    Età
    41
    Messaggi
    26
    Versione Office
    2010
    Likes ricevuti
    1

    Re: Dritte per nuovo progetto

    Citazione Originariamente Scritto da cromagno Visualizza Messaggio
    Ciao cocci,
    senza provare posso solo dirti che la cosa è fattibile...

    In un mio file, devo aggiornare (tramite codice) una ventina di query (per importare dati dal web) ed ho notato che se effettuavo gli aggiornamenti senza pause... si bloccava tutto senza possibilità di proseguire, probabilmente per i motivi che hai pensato potessero dare problemi (memoria presumibilmente).
    Ho risolto con "DoEvents":
    https://msdn.microsoft.com/it-it/lib...or=-2147217396

    Comunque, i vari url li metterei in un foglio all'interno dello stesso file non in documento esterno.
    O ancora meglio, se gli url si differenziano solo per l'anno del campionato, potresti fare un ciclo "For...next" ed incrementare l'anno ad ogni ciclo... modificando quindi la stringa di testo che richiama l'url.
    Innanzitutto grazie mille per la risposta.
    Io purtroppo di programmazione in excel so veramente poco (ho utilizzato un pò di formula qua e la, ma niente di più) per cui avrei vbisogno di farti alcune domande:
    1) Mi stai suggerendo di utilizzare VBA giusto? Con semplici formule excel la cosa è improponibile?
    2) Un qualche esempio pratico che faccia qualcosa di simile esiste in rete? Magari che importa dei dati da una sola pagina web, in modo da poter iniziare a capirci qualcosa.
    Invia MPPM 

  4. #4

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4019
    Versione Office
    2013
    Likes ricevuti
    1228
    Likes dati
    923

    Re: Dritte per nuovo progetto

    Ciao,
    se devi importare dati dal web ci sono solo due strade.... o lo fai manualmente o utilizzi il VBA. Spero di essere smentito ma non credo esistano formule per questi scopi.

    Esempi pratici...
    potresti effettuare un'importazione manualmente attivando prima il registratore di macro. In questo modo avrai un codice bello e pronto (da modificare per le tue necessità).

    In alternativa puoi prendere spunto dal file di cui ti ho parlato prima, ma non farci troppo affidamento in quanto è partito come un semplice foglio con qualche formula e man mano ho aggiunto codici,userform etc... quindi non credo sia tanto semplice da "seguire".
    Comunque, lo puoi scaricare da qui:
    http://dropcanvas.com/mj49j

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
    Invia MPPM 

  5. #5
    L'avatar di cocci
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    Pisa
    Età
    41
    Messaggi
    26
    Versione Office
    2010
    Likes ricevuti
    1

    Re: Dritte per nuovo progetto

    Grazie mille cromagno, però l'antivirus mi blocca il download perchè dice che è infetto
    Invia MPPM 

  6. #6

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4019
    Versione Office
    2013
    Likes ricevuti
    1228
    Likes dati
    923

    Re: Dritte per nuovo progetto

    Comunque,
    occhio al titolo della discussione.
    Deve essere inerente al problema da affrontare per questi motivi (scritti nel regolamento):

    Regola nr.5 "il titolo"
    Assicurarti che il titolo sia il più chiaro possibile e che corrisponda al problema, usa termini appropriati che saranno usati come meta tag per una eventuale ricerca su Google.
    Evita di scrivere frasi inutili come “Aiuto” “Urgente ” “Non ci capisco niente” e "sono bloccato"
    perché potrebbero rivelarsi non appropriate e di conseguenza le tue discussioni potrebbero essere non lette.
    Ti consiglio di scrivere titoli che vanno dritto al problema esempio: "come faccio ad analizzare dati....." "come faccio ad estrarre records....." "come faccio a calcolare......." "come creare una TPivot......"
    I titoli ed i testi devono essere scritti in italiano corretto, sia grammaticamente che ortograficamente; postare frasi con errori evidenti è sempre una forma di NON rispetto per chi legge.
    Questa volta l'ho modificato io.

    P.S.
    Sposto la discussione nella sezione VBA in quanto non credo che con le formule si possa ottenere quello che chiedi.

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
    Invia MPPM 

  7. #7

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4019
    Versione Office
    2013
    Likes ricevuti
    1228
    Likes dati
    923

    Re: Dritte per nuovo progetto

    Citazione Originariamente Scritto da cocci Visualizza Messaggio
    Grazie mille cromagno, però l'antivirus mi blocca il download perchè dice che è infetto
    Ciao,
    molti antivirus possono vedere come "pericolosi" i file che contengono codici VBA perchè in effetti potrebbe essere così...

    Se vuoi scaricarlo, disattiva l'antivirus per il tempo necessario o aggiungigli un'eccezione per quel file... NON è infetto :166:

    Comunque la scelta è tua :32:

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
    Invia MPPM 

  8. #8
    L'avatar di cocci
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    Pisa
    Età
    41
    Messaggi
    26
    Versione Office
    2010
    Likes ricevuti
    1

    Re: Dritte per nuovo progetto

    Citazione Originariamente Scritto da cromagno Visualizza Messaggio
    Ciao,
    molti antivirus possono vedere come "pericolosi" i file che contengono codici VBA perchè in effetti potrebbe essere così...

    Se vuoi scaricarlo, disattiva l'antivirus per il tempo necessario o aggiungigli un'eccezione per quel file... NON è infetto :166:

    Comunque la scelta è tua :32:
    Certo che mi fido. Scaricato. Il foglio è protetto giusto?
    Invia MPPM 

  9. #9

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4019
    Versione Office
    2013
    Likes ricevuti
    1228
    Likes dati
    923

    Re: Dritte per nuovo progetto

    Ciao,
    sono protetti i primi due fogli (per preservare le formule), ma è una password "vuota" quindi devi cliccare semplicemente su rimuovi protezione.

    Comunque qullo che ti interessa (i codici) non ha protezione.

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
    Invia MPPM 

  10. #10
    L'avatar di cocci
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    Pisa
    Età
    41
    Messaggi
    26
    Versione Office
    2010
    Likes ricevuti
    1

    Re: Dritte per nuovo progetto

    Innanzitutto ti ringrazio per la grande disponibilità.
    Il file che mi hai inviato fa praticamente quello che vorrei fare io.
    Guardando un pò il codice mi sembra di capire che il download dei dati venga fatto dal codice riprotato nella form "Progresso" dalla funzione "Sub Aggiorna_Query()".
    Non riesco a capire però in quale parte del codice indichi le url da cui scaricare i dati (quelle riportate nello sheet Link).
    Ancora grazie mille
    Invia MPPM 

  11. #11

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4019
    Versione Office
    2013
    Likes ricevuti
    1228
    Likes dati
    923

    Re: Dritte per nuovo progetto

    Citazione Originariamente Scritto da cocci Visualizza Messaggio
    Non riesco a capire però in quale parte del codice indichi le url da cui scaricare i dati (quelle riportate nello sheet Link).
    Ancora grazie mille
    Ciao,
    si, perchè quella parte di codice "Aggiorna" le query già esistenti...

    Il link dal quale prendere i dati lo puoi vedere nel codice legato al pulsante "Aggiungi" della "Userform1".

    Come ti ho detto, credo che capiresti meglio registrando una macro mentre esegui manualmente un importazione.

    [EDIT]
    Il foglio "Link" è un rimasuglio di vecchie prove. Viene aggiornato quando inserisco o elimino delle serie tv ma non prende parte al codice vero e proprio.

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
    Invia MPPM 

  12. #12
    L'avatar di cocci
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    Pisa
    Età
    41
    Messaggi
    26
    Versione Office
    2010
    Likes ricevuti
    1

    Re: Dritte per nuovo progetto

    Sto cercando di adattare il foglio che mi hai gentilmente allegato alle mie esigenze.
    Riesco ad importare i dati fornendo la url, ad esempio questa: http://www.betexplorer.com/soccer/it...rie-a/results/
    Il problema è che mi trasforma i numeri le cui cifre decimali hanno il . in testo o le date in testo.
    Sapreste dirmi come fare per far importare i dati facendo in modo da non modificare il formato dei dati di partenza? Magari importando tutto come testo
    Ultima modifica fatta da:cocci; 22/05/16 alle 19:12 Motivo: domanda più chiara
    Invia MPPM 

  13. #13

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4019
    Versione Office
    2013
    Likes ricevuti
    1228
    Likes dati
    923

    Re: Dritte per nuovo progetto

    Ciao cocci,
    allega il lavoro che hai fatto (senza dati sensibili naturalmente).
    Gli darò un'occhiata appena posso...

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
    Invia MPPM 

  14. #14
    L'avatar di cocci
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    Pisa
    Età
    41
    Messaggi
    26
    Versione Office
    2010
    Likes ricevuti
    1

    Re: Dritte per nuovo progetto

    Ciao cromagno sostanziamente io metto come url nella form di inserimento queata http://www.betexplorer.com/soccer/it...rie-a/results/
    e lui mi importa la pagina ma mi trasforma i dati. Non ti allego il file perchè è identico a quello che tu mi hai dato.
    Dovrei capire come fare per far in modo che i dati rimangano nel formato testo e non vengano trasformati in numeri
    Invia MPPM 

  15. #15

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4019
    Versione Office
    2013
    Likes ricevuti
    1228
    Likes dati
    923

    Re: Dritte per nuovo progetto

    Come è uguale a quello che ti ho dato??
    Se alleghi il file posso vedere il foglio dove importi i dati e soprattutto come te li importa... sinceramente non ho voglia di modificare il mio file per ottenere un risultato FORSE uguale al tuo visto che tu hai già il file bello e pronto... :32:

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
    Invia MPPM 

  16. #16
    L'avatar di cocci
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    Pisa
    Età
    41
    Messaggi
    26
    Versione Office
    2010
    Likes ricevuti
    1

    Re: Dritte per nuovo progetto

    Citazione Originariamente Scritto da cromagno Visualizza Messaggio
    Come è uguale a quello che ti ho dato??
    Se alleghi il file posso vedere il foglio dove importi i dati e soprattutto come te li importa... sinceramente non ho voglia di modificare il mio file per ottenere un risultato FORSE uguale al tuo visto che tu hai già il file bello e pronto... :32:
    Io te lo allego pure, però forse mi sono spiegato male.
    Praticamente utilizzo il tuo stesso software, clicco su "Menu opzioni" e poi su "Inserisci serie tv".
    Nel campo Serie tv inserisco "Serie A", nel campo lingua "Ita", nel campo numero stagione "2016" e nel campo url questo "http://www.betexplorer.com/soccer/italy/serie-a/results/".
    Poi clicco su "Aggiungi" e mi crea lo sheet "Serie A 2016", dove mi importa i dati, ma modifica il tipo, ossia mi trasforma i vari campi testo in numeri e date.
    La mia intenzione era partire dal tuo file, vedere di riuscire ad importare almeno un campionato ed apportare poi le modifiche necessarie per rendeer il software più vicino alle mie esigenze.
    Ti allego il file, anche se come vedrai è identico al tuo. Ho solo eliminato le serie tv ed ho inserito il campionato di serie a 2016
    File Allegati File Allegati
    Invia MPPM 

  17. #17
    L'avatar di cocci
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    Pisa
    Età
    41
    Messaggi
    26
    Versione Office
    2010
    Likes ricevuti
    1

    Re: Dritte per nuovo progetto

    Oltre al problema della formattazione dei dati, ho notato che non importa i dati nelle colonne C D ed E, ossia i valori delle colonne 1 X 2.
    Lo stesso problema si presenta anche se provo ad importare la pagina utilizzando la funzionalità di creazione delle query web mediante excel (quindi senza utilizzare vba)
    Invia MPPM 

  18. #18

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4019
    Versione Office
    2013
    Likes ricevuti
    1228
    Likes dati
    923

    Re: Dritte per nuovo progetto

    Ho provato in un file nuovo ma nulla...

    tramite VBA non riesco ad importare la tabella (manualmente si).

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
    Invia MPPM 

  19. #19
    L'avatar di cocci
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    Pisa
    Età
    41
    Messaggi
    26
    Versione Office
    2010
    Likes ricevuti
    1

    Re: Dritte per nuovo progetto

    Potresti indicarmi come hai importato manualmete la tabella (i passi che hai eseguito)?
    Importandola tramite VBA hai lo stesso mio problema? ossia non vengono importate le colonne 1 X 2 e la formattazione dei dati non viene mantenuta?
    Invia MPPM 

  20. #20

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4019
    Versione Office
    2013
    Likes ricevuti
    1228
    Likes dati
    923

    Re: Dritte per nuovo progetto

    Citazione Originariamente Scritto da cocci Visualizza Messaggio
    Potresti indicarmi come hai importato manualmete la tabella (i passi che hai eseguito)?
    Importandola tramite VBA hai lo stesso mio problema? ossia non vengono importate le colonne 1 X 2 e la formattazione dei dati non viene mantenuta?
    Ciao,
    con l'importazione normale mi dava i tuoi stessi errori (purtroppo dipende dalla struttura dei dati che non vengono riconosciuti).

    Usando le "Power Query" importa la tabella già formattata.
    Ti posso dire cosa ho fatto con Excel 2016 ma non so se i passaggi corrispondano nella tua versione..
    Dopo esserti posizionato sul foglio dove effettuare l'importazione:


    1. Dalla scheda "Dati" apri il menu alla voce "Nuova Query" (la seconda icona da sinistra), scegli la voce "Da altre origini" e successivamente la voce "Da Web"
    2. Copia il link nell'apposito campo e premi OK
    3. Nella finestra che si apre: sulla sinistra metti la spunta a "Seleziona più elementi" e dopo mettila alla voce "Table 0"
    4. In basso a destra clicca sulla freccia per aprire il menu alla voce ""carica" e scegli la voce "Carica in..."
    5. Seleziona la voce "Tabella"
    6. Seleziona la voce "Foglio di lavoro esistente" (nel campo sottostante inserisci il riferimento di cella dove vuoi che venga caricata la tabella)
    7. Clicca su "Carica"


    Ho provato a registrare l'operazione tramite macro ma devo capire bene come funziona per rendere "dinamica" l'operazione.
    Farò qualche altra prova stanotte.

    La tabella importata è quella nel file che ti allego....
    File Allegati File Allegati

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
    Invia MPPM 

  21. #21
    L'avatar di cocci
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    Pisa
    Età
    41
    Messaggi
    26
    Versione Office
    2010
    Likes ricevuti
    1

    Re: Dritte per nuovo progetto

    Ti ringrazio infinitamente per la disponibilità.
    Invia MPPM 

  22. #22
    L'avatar di cocci
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    Pisa
    Età
    41
    Messaggi
    26
    Versione Office
    2010
    Likes ricevuti
    1

    Re: Dritte per nuovo progetto

    Finalmente, grazie all'aiuto di un utente di un altro forum (qui la discussione http://bet.forumfree.it/?t=72582541) riesco a prelevare gli incontri di un determinato campionato di calcio, passandogli la url nel codice vba (in allegato il file).

    Codice: 
    Sub CopiaWeb()
      Dim mIE As Object
      Dim mTables, mTable
      Dim mRows, mRow
      Dim mCells, mCell
      Dim mRiga As Long, mColonna As Long
      Dim k As Integer
    
    
      
      Set mIE = CreateObject("InternetExplorer.Application")
      k = 0
      mRiga = 2
      With mIE
        .AddressBar = False
        .StatusBar = False
        .MenuBar = False
        .Toolbar = 0
        .Visible = False
        .navigate "http://www.betexplorer.com/soccer/italy/serie-b/results/"
    
    
      End With
      
      While mIE.Busy
      Wend
      While mIE.document.readyState <> "complete"
      Wend
      
      Set mTables = mIE.document.all.tags("TABLE")
      For Each mTable In mTables
          Set mRows = mTable.Rows
          For Each mRow In mRows
            Set mCells = mRow.Cells
            If Cells(mRiga - 1, 1) = "" Or Cells(mRiga - 1, 1) = "No." Then
            mColonna = 1
            Else
            mColonna = 1
            End If
            If k = 1 Then mColonna = 1
            For Each mCell In mCells
            
              ActiveSheet.Cells(mRiga, mColonna) = mCell.innerText
              mColonna = mColonna + 1
            Next mCell
            mRiga = mRiga + 1
          Next mRow
          k = 1
      Next mTable
      
    Azzera_Variabili:
      Set mCell = Nothing
      Set mCells = Nothing
      Set mRow = Nothing
      Set mRows = Nothing
      Set mTable = Nothing
      Set mTables = Nothing
      mIE.Quit
      Set mIE = Nothing
    MsgBox "Importazione terminata."
    End Sub
    Ora vorrei continuare il lavoro facendo in modo:
    1) prendere l'url direttamente dal foglio url (ad esempio il primo riportato in D3 di url)
    2) fare delle elaborazioni (ad esempio verificare i punti conquistati da ciascuna squadra impegnata in un match) e poi indicare in E3 il risultato di questa elaborazione
    3) finita l'elaborazione dell'url in D3 cancellare i dati scaricati e passara ad importare ed elaborare i dati utilizzando l'url presente in D4, e così via per tutte le url.

    Lo so che non è una cosa facile.
    Spero ci sia qualcuno che voglia darmi una mano.

    Grazie mille
    File Allegati File Allegati
    Ultima modifica fatta da:cromagno; 28/05/16 alle 19:03 Motivo: Aggiunto codice utilizzato...
    Invia MPPM 

  23. I seguenti utenti hanno dato un "Like"


  24. #23

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4019
    Versione Office
    2013
    Likes ricevuti
    1228
    Likes dati
    923

    Re: Dritte per nuovo progetto

    Ciao cocci,

    non ha usato le query ma è certamente un buon metodo :246:
    A questo punto non dovrebbe essere difficile implementare il codice con quello che ti serve, ma dovresti essere più preciso.

    Ok per il punto 1.
    Il punto 3, da quel che ho capito, in pratica dice che i fogli ti servono solo temporaneamente per fare i tuoi conteggi e dopo devi eliminarli.

    Per il punto 2:
    2) fare delle elaborazioni (ad esempio verificare i punti conquistati da ciascuna squadra impegnata in un match) e poi indicare in E3 il risultato di questa elaborazione
    Fai un esempio pratico nel file allegato (con il foglio "url" - cella D3 e il foglio "Foglio1") perchè non ho capito i "calcoli" che vuoi fare.

    Ti sto scrivendo dal lavoro e probabilmente riuscirò a dedicarci un pò di tempo solo dopo il fine settimana.

    P.S.
    Nel tuo post ho aggiunto il codice utilizzato.

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
    Invia MPPM 

  25. #24
    L'avatar di cocci
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    Pisa
    Età
    41
    Messaggi
    26
    Versione Office
    2010
    Likes ricevuti
    1

    Re: Dritte per nuovo progetto

    Citazione Originariamente Scritto da cromagno Visualizza Messaggio
    Ciao cocci,

    non ha usato le query ma è certamente un buon metodo :246:
    A questo punto non dovrebbe essere difficile implementare il codice con quello che ti serve, ma dovresti essere più preciso.

    Ok per il punto 1.
    Il punto 3, da quel che ho capito, in pratica dice che i fogli ti servono solo temporaneamente per fare i tuoi conteggi e dopo devi eliminarli.

    Per il punto 2:


    Fai un esempio pratico nel file allegato (con il foglio "url" - cella D3 e il foglio "Foglio1") perchè non ho capito i "calcoli" che vuoi fare.

    Ti sto scrivendo dal lavoro e probabilmente riuscirò a dedicarci un pò di tempo solo dopo il fine settimana.

    P.S.
    Nel tuo post ho aggiunto il codice utilizzato.
    Provo ad esere più chiaro.
    Visto che voglio analizzare un numero elevatissimo di campionati (potrebbero essere più di 150/160) non credo che sia una buona idea creare un foglio per ogni campionato (forse non è neanche possibile avere 150 sheet). E' così o mi sbaglio?
    Per cui avevo pensato di fare così:
    1) avere un foglio (quello che ho chiamato url nel file allegato) in cui inserisco nella colonna D (a partire dalla cella D3) le url di tutti i campionati che voglio analizzare (per semplicità nel file allegato ci sono solo i 6 campionati della serie a dalla stagione 2010-2011 alla 2015-2016)
    2) per ognuna di queste url vorrei scaricare i risultati dei match di quel campionato in un altro sheet. Dopo aver scaricato i match dovrei fare delle elaborazioni. Più precisamente dovrei:
    • per ogni match,verificare i punti conquistati dalle due squadre nei precedenti 6 match
    • prendere in considerazione unicamente i match che rispettano contemporaneamente le seguenti condizioni: a) la differenza di punti conquistati dalle due squadre negli ultimi 6 incontri è minore di un valore prefissato (ad esempio 2), b) la squadra di casa abbia conquistato (sempre negli ultimi 6 match) un certo numero di punti in più rispetto alla squadra in trasferta (ad esempio almeno 1 in più) c) la quota del segno 1 sia minore di una valore prefissato (ad esempio 2) d) la quota del segno 2 sia minore di un valore prefissato (ad esempio 3). Per tutti i match che rispettano questa 4 condizioni verificare se il risultato finale sia stato X (pareggio) o meno. Se è stato pareggio associare al match il seguente valore (quota x -1), se non è stato un pareggio associare -1. Alla fine di questi calcoli vorrei sapere e memorizzare da qualche parte (ad esempio nello sheet url in corrispondenza dell'url del campioanto preso in esame) per lo specifico campionato: 1) il numero di match che hanno rispettato le 4 condizioni indicate prima 2) la somma dei valori associati ai match

    3) fatto questo per un campionato, vorrei ripetere gli stessi calcoli per tutti gli altri campionati indicati dagli url riportati nellas colonna D del folgio url

    Spero sia stato abbastanza chiaro. Se non lo sono stato dimmi pure cosa vorresti approfondire.

    Grazie ancora cromagno per la tua disponibilità
    Invia MPPM 

  26. #25

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4019
    Versione Office
    2013
    Likes ricevuti
    1228
    Likes dati
    923

    Re: Dritte per nuovo progetto

    Ciao,
    scusa l'assenza ma non stavo molto bene...

    Come ti dicevo, per importare tutti i link e dopo cancellare il foglio, puoi modificare il codice in questo modo:

    Codice: 
    Sub CopiaWeb()
      Dim mIE As Object
      Dim mTables, mTable, uRiga As Long, Wks As Worksheet
      Dim mRows, mRow, Indirizzo As String, i As Long
      Dim mCells, mCell, N_Foglio As String
      Dim mRiga As Long, mColonna As Long
      Dim k As Integer
    
    
      Set Wks = Worksheets("url")
      uRiga = Wks.Range("D" & Rows.Count).End(xlUp).Row
      Set mIE = CreateObject("InternetExplorer.Application")
      For i = 3 To uRiga
      k = 0
      mRiga = 2
      N_Foglio = "url " & i
      Indirizzo = Wks.Range("D" & i).Value
      Sheets.Add After:=Sheets(Sheets.Count)
      ActiveSheet.Name = N_Foglio
      With mIE
        .AddressBar = False
        .StatusBar = False
        .MenuBar = False
        .Toolbar = 0
        .Visible = False
        .navigate "http://www.betexplorer.com/soccer/italy/serie-b/results/"
      End With
      
      While mIE.Busy
      Wend
      While mIE.document.readyState <> "complete"
      Wend
      
      Set mTables = mIE.document.all.tags("TABLE")
      For Each mTable In mTables
          Set mRows = mTable.Rows
          For Each mRow In mRows
            Set mCells = mRow.Cells
            If Cells(mRiga - 1, 1) = "" Or Cells(mRiga - 1, 1) = "No." Then
            mColonna = 1
            Else
            mColonna = 1
            End If
            If k = 1 Then mColonna = 1
            For Each mCell In mCells
              ActiveSheet.Cells(mRiga, mColonna) = mCell.innerText
              mColonna = mColonna + 1
            Next mCell
            mRiga = mRiga + 1
          Next mRow
          k = 1
      Next mTable
      Application.DisplayAlerts = False
      Sheets(N_Foglio).Delete
      Application.DisplayAlerts = True
      ActiveWorkbook.Save
      DoEvents
    Next i
      
    Azzera_Variabili:
      Set mCell = Nothing
      Set mCells = Nothing
      Set mRow = Nothing
      Set mRows = Nothing
      Set mTable = Nothing
      Set mTables = Nothing
      mIE.Quit
      Set mIE = Nothing
    MsgBox "Importazione terminata."
    End Sub
    Ma per il punto due non capisco i dati che vuoi "conservare".
    Tieni conto che non sono un grande amante di calcio, per questo ti avevo chiesto un esempio pratico direttamente nel foglio dove hai importato uno dei link, almeno posso provare a replicare quello che ti serve tramite VBA.

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
    Invia MPPM 

  27. #26
    L'avatar di cocci
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    Pisa
    Età
    41
    Messaggi
    26
    Versione Office
    2010
    Likes ricevuti
    1

    Re: Dritte per nuovo progetto

    Innanzitutto grazie mille.
    Ho provato a modificare il codice VBA come da te indicato ma ho notato che mi va in errore dopo che mi importa i dati dal primo url.
    Voglio farti una domanda: dalla tua esperienza pensi che sia fattibile importare i dati di ogni url su uno sheet diverso evitando così di cancellare tutte le volte i dati (potrebbe servirmi per fare dei test successivamente)? Sarebbe necessario però poter creare 100/150 sheet. C'è un limite massimo al numero di sheet di un file?
    Ti allego un file di esempio in cui ti riporto i calcoli (punto 2 del mio precedente post) che dovrei fare dopo aver scaricato i dati da ciascun url, dove:
    • nella colonna I e J riporto i nomi (estrapolati dalla colonna B) delle due squadre
    • nella colonna K e L i goal (estrapolati dalla colonna C) segnati dalla prima e dalla seconda squadra
    • nella colonna N e O i punti conquistati dalle due squadre (3 se ha vinto, 0 se ha perso e 1 se ha pareggiato)
    • nella colonna P e Q la somma dei punti conquistati dalle due squadre negli ultimi 6 incontri
    • nella colonna R decido (il modo con cui calcolo la mia previsione lo puoi vedere direttamente dalla formula) se su ciascun match avrei puntato o meno sul segno X (pareggio). Metto "X" se la mia previsione per quel match è un pareggio, metto "--" se invece non riesco a prevedere come finirà il match
    • nella colonna S metto 1 se ho previsto una "X" nella colonna R, "--" altrimenti
    • nella colonna T infine metto "--" se nella colonna R non sono riuscito a prevedere l'esito del risultato, -1 se avevo previsto che finiva in pareggio ma in realtà il match non è terminato con un pareggio, (valore colonna E - 1) se infine avevo previsto un pareggio ed il match è terminato realmente in pareggio


    Fatti tutti questi calcoli in S7 ho il numero di previsioni del segno X (pareggi), in T7 quanto avrei guadagnato/perso se avessi puntato 1 unità su ciascun match nel quale avevo previsto un pareggio (X)

    Spero di essere stato abbstanza chiaro. Se non è così chiedimi qualunque cosa.

    Grazie mille ancora
    File Allegati File Allegati
    Invia MPPM 

  28. #27

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4019
    Versione Office
    2013
    Likes ricevuti
    1228
    Likes dati
    923

    Re: Dritte per nuovo progetto

    Ciao cocci,
    stavo guardando il tuo file....

    Il problema non è tanto quale sia il numero massimo di fogli in una cartella di lavoro (in excel 2003 se non ricordo male erano 250) quanto più la memoria del pc che ti occorre per gestirli.

    Tralasciando questo....
    Il lavoro più grosso è ridisporre le tabelle per ottenere qualcosa di simile a quello che hai fatto manualmente. Questo andrebbe fatto con una serie di cicli e magari con delle matrici di appoggio, ma c'è tenere conto del fatto che se le tabelle che scarichi dovessero cambiare la struttura anche solo per qualche carattere, tutto il lavoro svolto andrebbe a farsi benedire perchè non verrebbero trovate corrispondenze.

    Posso provare a fare qualcosa (tralasciando la parte delle previsioni perchè non mi sono chiare) e da li prosegui per finire il lavoro, ma ripeto...tutto il lavoro potrebbe vanificarsi al primo cambiamento delle tabelle, a meno di non prevedere tutte le possibili variazioni ma non credo che il gioco valga la candela.

    [EDIT]
    I risultati (colonna B) vengono importati come orario... quindi bisogna gestire anche quello....
    Per oggi ci rinuncio, troppe variabili.

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
    Invia MPPM 

  29. #28

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4019
    Versione Office
    2013
    Likes ricevuti
    1228
    Likes dati
    923

    Re: Dritte per nuovo progetto

    Ri-Ciao,

    importava sempre lo stesso indirizzo perchè mi ero dimenticato di modificare una riga :288:

    Comunque, questo è più o meno quello che intendevo con "non tanto facile da gestire":

    Codice: 
    Sub CopiaWeb()
      Dim mIE As Object
      Dim mTables, mTable, uRiga As Long, Wks As Worksheet, j As Long
      Dim mRows, mRow, Indirizzo As String, i As Long, Appoggio() As String
      Dim mCells, mCell, N_Foglio As String, uCol As Long
      Dim mRiga As Long, mColonna As Long, Squadre() As String
      Dim k As Integer, Goals() As Integer, Indice As Long, x As Long, SeiMatch As Integer
      Dim TeamA As String, TeamB As String, Controllo As Boolean, Somma As Long
      
      Set Wks = Worksheets("url")
      uRiga = Wks.Range("D" & Rows.Count).End(xlUp).Row
      Set mIE = CreateObject("InternetExplorer.Application")
      For i = 3 To uRiga
      k = 0
      mRiga = 2
      N_Foglio = "url " & i
      Indirizzo = Wks.Range("D" & i).Value
      Sheets.Add After:=Sheets(Sheets.Count)
      ActiveSheet.Name = N_Foglio
      With mIE
        .AddressBar = False
        .StatusBar = False
        .MenuBar = False
        .Toolbar = 0
        .Visible = False
        .navigate Indirizzo
      End With
      
      While mIE.Busy
      Wend
      While mIE.document.readyState <> "complete"
      Wend
      
      Set mTables = mIE.document.all.tags("TABLE")
      For Each mTable In mTables
          Set mRows = mTable.Rows
          For Each mRow In mRows
            Set mCells = mRow.Cells
            If Cells(mRiga - 1, 1) = "" Or Cells(mRiga - 1, 1) = "No." Then
            mColonna = 1
            Else
            mColonna = 1
            End If
            If k = 1 Then mColonna = 1
            For Each mCell In mCells
              ActiveSheet.Cells(mRiga, mColonna) = mCell.innerText
              mColonna = mColonna + 1
            Next mCell
            mRiga = mRiga + 1
          Next mRow
          k = 1
      Next mTable
      'Application.DisplayAlerts = False
      'Sheets(N_Foglio).Delete
      'Application.DisplayAlerts = True
      
    'Compilo la tabella che mi servirà per i calcoli
    mRiga = mRiga - 1
    ReDim Squadre(1 To mRiga, 1 To 2)
    ReDim Goals(1 To mRiga, 1 To 4)
        With ActiveSheet
            .UsedRange.Columns.AutoFit
            uCol = .UsedRange.Columns.Count + 2
            Indice = 0
            For j = 2 To mRiga
                If InStr(1, .Range("A" & j).Value, "-") > 0 Then
                    Indice = Indice + 1
                    Appoggio() = Split(.Range("A" & j).Value, " - ")
                    Squadre(Indice, 1) = Appoggio(0)
                    Squadre(Indice, 2) = Appoggio(1)
                    Goals(Indice, 1) = Hour(.Range("B" & j).Value)
                    Goals(Indice, 2) = Minute(.Range("B" & j).Value)
                    If Goals(Indice, 1) > Goals(Indice, 2) Then
                        Goals(Indice, 3) = 3
                        Goals(Indice, 4) = 0
                    ElseIf Goals(Indice, 1) < Goals(Indice, 2) Then
                        Goals(Indice, 3) = 0
                        Goals(Indice, 4) = 3
                    Else
                        Goals(Indice, 3) = 1
                        Goals(Indice, 4) = 1
                    End If
                End If
            Next j
    'Copio i dati dalla matrice alla tabella
            For j = 2 To UBound(Squadre)
                If Squadre(j - 1, 1) = "" Then Exit For
                .Cells(j, uCol).Value = Squadre(j - 1, 1)
                .Cells(j, uCol + 1).Value = Squadre(j - 1, 2)
                .Cells(j, uCol + 2).Value = Goals(j - 1, 1)
                .Cells(j, uCol + 3).Value = Goals(j - 1, 2)
                .Cells(j, uCol + 4).Value = Goals(j - 1, 3)
                .Cells(j, uCol + 5).Value = Goals(j - 1, 4)
            Next j
            
    'Sommo i punti per gli ultimi sei incontri di ogni squadra
            For j = 2 To UBound(Squadre)
                Somma = 0
                SeiMatch = 0
                TeamA = .Cells(j, uCol).Value
                TeamB = .Cells(j, uCol + 1).Value
                If TeamA = "" Then GoTo prossimo
                Controllo = Application.WorksheetFunction.CountIf(.Range(.Cells(j + 1, uCol), .Cells(UBound(Squadre), uCol + 1)), TeamA) >= 6
                If Controllo = True Then
                    For x = j + 1 To UBound(Squadre)
                        If .Cells(x, uCol).Value = TeamA Then
                            Somma = Somma + .Cells(j, uCol + 4).Value
                            SeiMatch = SeiMatch + 1
                        ElseIf .Cells(x, uCol + 1).Value = TeamA Then
                            Somma = Somma + .Cells(j, uCol + 4).Value
                            SeiMatch = SeiMatch + 1
                        End If
                        If SeiMatch = 6 Then
                            .Cells(j, uCol + 6).Value = Somma
                        End If
                    Next x
                Else
                    .Cells(j, uCol + 6).Value = "--"
                End If
                Somma = 0
                SeiMatch = 0
                Controllo = Application.WorksheetFunction.CountIf(.Range(.Cells(j + 1, uCol), .Cells(UBound(Squadre), uCol + 1)), TeamB) >= 6
                If Controllo = True Then
                    For x = j + 1 To UBound(Squadre)
                        If .Cells(x, uCol).Value = TeamB Then
                            Somma = Somma + .Cells(j, uCol + 4).Value
                            SeiMatch = SeiMatch + 1
                        ElseIf .Cells(x, uCol + 1).Value = TeamB Then
                            Somma = Somma + .Cells(j, uCol + 4).Value
                            SeiMatch = SeiMatch + 1
                        End If
                        If SeiMatch = 6 Then
                            .Cells(j, uCol + 7).Value = Somma
                        End If
                    Next x
                Else
                    .Cells(j, uCol + 7).Value = "--"
                End If
            Next j
        End With
    prossimo:
        ActiveWorkbook.Save
        DoEvents
    Next i
      
    Azzera_Variabili:
      Set mCell = Nothing
      Set mCells = Nothing
      Set mRow = Nothing
      Set mRows = Nothing
      Set mTable = Nothing
      Set mTables = Nothing
      mIE.Quit
      Set mIE = Nothing
    Worksheets("url").Activate
    MsgBox "Importazione terminata."
    End Sub
    Ho lasciato solo 3 indirizzi nella colonna "D" del foglio "url" giusto per fare delle prove....

    A tutto quello manca ancora la gestione degli errori (esempio per un indirizzo sbagliato), incrementare i tuoi calcoli delle previsioni e qualcos'altro ancora....

    Ti riallego il file.
    File Allegati File Allegati

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
    Invia MPPM 

  30. I seguenti utenti hanno dato un "Like"


  31. #29
    L'avatar di cocci
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    Pisa
    Età
    41
    Messaggi
    26
    Versione Office
    2010
    Likes ricevuti
    1

    Re: Dritte per nuovo progetto

    Cromagno sei un grande da tanti punti di vista: dalle competenze alla disponibilità che hai dimostrato senza chiedere nulla in cambio. Credo che queste cose siano veramente difficili da trovare in una stessa persona.
    Detto questo, ho visto il file che mi hai postato ed era effettivamente quello che volevo fare.
    Ora provo ad andare avanti con le mie gambe (il grosso credo lo abbia fatto tu) ed impostare io i calcoli per le previsioni.
    Magari se puoi non chiudere la discussione, in modo da poter mettere qui eventuali altre domande (spero che non ce ne siano).

    Grazie mille ancora
    Invia MPPM 

  32. #30
    L'avatar di cocci
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    Pisa
    Età
    41
    Messaggi
    26
    Versione Office
    2010
    Likes ricevuti
    1

    Re: Dritte per nuovo progetto

    Scusa cromagno,
    mi sono accorto che probabilmente nel file che mi hai mandato c'è un errore nel calcolo delle colonne N ed O, dovrebbero essere quelle che contengono i punti conquistati dalle due squadre negli ultimi 6 incontri.

    Se riesci a trovare l'errore mi faresti un altro grossissimo favore.
    Ciao
    Invia MPPM 

Discussioni Simili

  1. [Risolto] Problema importazione dati web
    Di FedeRichi nel forum Domande su Excel VBA e MACRO
    Risposte: 12
    Ultimo Messaggio: 03/05/17, 14:03
  2. Importazione dati da web
    Di alfrimpa nel forum Domande su Excel VBA e MACRO
    Risposte: 5
    Ultimo Messaggio: 02/10/16, 14:06
  3. Importazione dati da web con immagini
    Di ginKa nel forum Domande su Excel in generale
    Risposte: 0
    Ultimo Messaggio: 03/06/16, 14:15
  4. Importazione dati con condizione
    Di G.Bove nel forum Domande su Excel VBA e MACRO
    Risposte: 34
    Ultimo Messaggio: 09/05/16, 20:48
  5. Importazione dati
    Di Andrea_Ra nel forum Domande su Excel VBA e MACRO
    Risposte: 47
    Ultimo Messaggio: 05/11/15, 19:23

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •