Condividi:        

Esportare tabella da sito internet a file Excel

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

Esportare tabella da sito internet a file Excel

Postdi pippuz83 » 03/01/15 09:54

Ciao a tutti, sono nuovo e questo è il primo post, anche se cmq vi seguo da anni.
Scusate innanzitutto per il disturbo, spero di non fare domande che sono già state fatte anche se comunque ho guardato parecchi post e anche se mi qualcosa di simile è già stato chiesto, nessuno diciamo che risponde appieno alle mie "richieste".
Premetto che sono un pò ignorante in materia....

Il mio problema è il seguente...ho esigenze di crearmi un piccolo "database" con i giocatori di un videogioco.
Questi giocatori con i relativi dati sono già molto bene organizzati in questo sito
http://pesdb.net/pes2015/?liveupdate=0
come vedete però le pagine sono molteplici, esattamente 386 e mettermi a fare copia/incolla manualmente è davvero un suicidio.
Tempo fa tramite un mio amico avevamo creato una macro che faceva il copia incolla della 1a pagina della tabella e la incollava appunto in un foglio excel, poi passava alla seconda e la incollava subito sotto a quella precedente al foglio excel e così via.

Purtroppo come dicevo sono MOLTO ignorante in materia e sopratutto ho perso quella macro. Qualcuno può darmi una mano???
Altrimenti l'unica cosa che posso fare e mettermi a fare 386 volte il copia incolla, pagina per pagina :(

Ultimissima cosa che chiedo, se possibile....forse qui vado più sul complicato....
se vi mettete col mouse sopra il nome di un giocatore vedrete che c'è un link a una pagina...avere una colonna anche con questo link per ogni giocatore, dite che è fattibile??

Mi scuso ancora per il disturbo, e ringrazio in anticipo chi mi darà una mano.

Ciao a tutti e grazie
pippuz83
Newbie
 
Post: 5
Iscritto il: 03/01/15 09:47

Sponsor
 

Re: Esportare tabella da sito internet a file Excel

Postdi Anthony47 » 03/01/15 19:54

Ciao pippuz83, benvenuto nel forum.
L' url indicato contiene una quindicina di tabelle, di cui solo la prima in realta' si riferisce a giocatori; dove si trovano le altre "385"?
Avatar utente
Anthony47
Moderatore
 
Post: 19213
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Esportare tabella da sito internet a file Excel

Postdi Statix » 03/01/15 21:05

Ciao pipuzz83,
Ciao Anthony47,
le pagine sono sotto all'elenco,
http://pesdb.net/pes2015/?liveupdate=0&page=3

secondo me basta applicare una variabile al page= &" A "

e con un ciclo For A =1 To 386 (pagine) scaricare i dati di tutte le pagine.
io lo fatto con il 10elotto 5 minuti e mi ha funzionato perfettamente.
nel forum c'è già un post che ne parla ,ma che attualmente non ricordo ,
prova un po' a cercare.
Statix
Windows 10,
Office 2013,
Statix
Utente Senior
 
Post: 1287
Iscritto il: 12/05/06 21:55
Località: Provincia di Caserta

Re: Esportare tabella da sito internet a file Excel

Postdi Statix » 03/01/15 22:28

Fra poco allego il file funzionante.
Statix
Windows 10,
Office 2013,
Statix
Utente Senior
 
Post: 1287
Iscritto il: 12/05/06 21:55
Località: Provincia di Caserta

Re: Esportare tabella da sito internet a file Excel

Postdi pippuz83 » 03/01/15 23:24

grazie mille....mi faresti davvero un grosso piacere :)
pippuz83
Newbie
 
Post: 5
Iscritto il: 03/01/15 09:47

Re: Esportare tabella da sito internet a file Excel

Postdi Statix » 03/01/15 23:46

Ciao pipuzz83,
ho fatto il programmino,
ma ho un problema ,non riesce ad elaborare tutte le pagine,
dopo aver copiato 30 pagine si blocca,
ho messo 2 celle dove poter inserire la pagina d'inizio e quella finale,
semmai Anthony47 ci darà un occhiata,
credo che sia un problema di Excel 2013,che non ammette più di 30 query,
ho provato anche ad eliminarle man mano,
se metto da 30 a 100 funziona ma a 60 si blocca,
aspettiamo il responso di Anthony47.
NB i dati sono in archivio,ogni volta che lanci il programma l'archivio viene cancellato
per far posto ai nuovi dati.
provvisoriamente potresti salvare ogni 30 pagine.


http://www.filedropper.com/giocatorilista
Statix
Windows 10,
Office 2013,
Statix
Utente Senior
 
Post: 1287
Iscritto il: 12/05/06 21:55
Località: Provincia di Caserta

Re: Esportare tabella da sito internet a file Excel

Postdi Anthony47 » 04/01/15 03:09

In linea di massima, le web query non dovrebbero essere "aggiunte" con un ciclo, ma andrebbero inserite una volta e poi in un ciclo se ne modifica le proprieta' Connection e Destination.
Nel caso specifico, volendo inserire anche l' hyperlink alle proprieta' di un player preferisco cambiare approccio, e usare questa macro, derivata da richieste analoghe:
Codice: Seleziona tutto
Sub GetPesdb()
Dim IE As Object, myColl, myItM, myTRColl, myR, myTDColl, myD, I As Long, J As Long, II As Long
Dim myLKColl

Set IE = CreateObject("InternetExplorer.Application")
'Leggi le tabelle su Foglio3
Sheets("Foglio3").Select     '<<< Vedi testo
Cells.ClearContents
'
For II = 1 To 20     'Sostituire dopo le prove 20 con 400
    myUrl = "http://pesdb.net/pes2015/?liveupdate=0&page=" & II
'
    With IE
        .navigate myUrl
        .Visible = True
        Do While .Busy: DoEvents: Loop    'Attesa not busy
        Do While .readyState <> 4: DoEvents: Loop 'Attesa documento
    End With
    '
    myStart = Timer  'attesa addizionale
    Do
        DoEvents
        If Timer > myStart + 0.3 Or Timer < myStart Then Exit Do
    Loop
'
'Raccolta dati:
    Set myColl = IE.document.getElementsByTagName("TABLE")
    K = 0
    For Each myItM In myColl
        If myItM.classname = "players" Then
            Set myTRColl = myItM.getElementsByTagName("TR")
            For Each myR In myTRColl
                Set myTDColl = myR.getElementsByTagName("TD")
                If myTDColl.Length = 0 Then Set myTDColl = myR.getElementsByTagName("TH")
                For Each myD In myTDColl
                        Cells(I + 1, J + 1) = myD.innertext
                        Cells(I + 1, 1).Select
                        J = J + 1: K = K + 1
                        If J = 2 Then
                            Set myLKColl = myD.getElementsByTagName("A")
                            If myLKColl.Length > 0 Then
                                aaa = myLKColl(0).href
                                ActiveSheet.Hyperlinks.Add Anchor:=Cells(I + 1, 2), _
                                    Address:=myLKColl(0).href, TextToDisplay:=Cells(I + 1, 2).Value
                            End If
                        End If
                Next myD
                I = I + 1: J = 0
            Next myR
            I = I + 2
        End If
    Next myItM
If K < 15 Then
    Exit For
End If
Next II
IEQuit:
'Chiusura IE
IE.Quit
Set IE = Nothing
End Sub

La macro apre il link all' interno di una finestra InternetExplorer e ne estrae le informazioni, posizionandole all' interno di "Foglio3" del file corrente.
Foglio3 deve gia' esistere e SARA' AZZERATO SENZA PREAVVISO al lancio della macro.

Si noti che ho inserito un ciclo For II = 1 To 20 che estrarra' solo le prime 20 tabelle; questo per potersi fare un'idea del tempo richiesto. Quando sei pronto, sostituisci 20 con 400 e avvia la macro, poi aspetta pazientemente.
La macro si interrompera' quando viene restituita una tabella senza giocatori.

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

Re: Esportare tabella da sito internet a file Excel

Postdi pippuz83 » 04/01/15 09:42

Davvero grazie mille ad entrambi, gentilissimi!!!!
Oggi provo e vi faccio sapere :)
pippuz83
Newbie
 
Post: 5
Iscritto il: 03/01/15 09:47


Torna a Applicazioni Office Windows


Topic correlati a "Esportare tabella da sito internet a file Excel":


Chi c’è in linea

Visitano il forum: Nessuno e 27 ospiti