Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

EXCEL WEB MULTIPLE PAGE TABLE QUERY

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

EXCEL WEB MULTIPLE PAGE TABLE QUERY

Postdi brik32544 » 26/10/13 17:19

Ho cercato a lungo e in largo per un forum che potesse aiutarmi...poi ho trovato VOI :)

Una richiesta simile alla mia è stata gia risolta qui, ma anche leggendo e rileggendo, il macro non funziona :(

Sarò sintetica

Voglio scaricare su excel delle tabelle dal web che sono su più pagine.


La PRIMA pagina è questa

http://accessoprogrammato.miur.it/2013/ ... id_ngrad=1

La SECONDA pagina è
http://accessoprogrammato.miur.it/2013/ ... E&pagina=2

Dove notate che cambia

id_ngrad=1&cdl=ME&pagina=2

Ci sono 691 pagine e quindi il 2 deve diventare 3, 4 ....691

Ogni pagina web ha 100 records e la macro che deve copiare in toto su un foglio excel


Ho letto questo stupendo post

viewtopic.php?t=88282

Il problema è simile. Ho provato a smanettare con quei macro ma non me lacavo.
Il fatto che quel sito (La borsa italiana) è drasticamente cambiato, non mi permette di fare dei test

Potete aiutarmi? :roll:

Grazie
brik32544
Newbie
 
Post: 5
Iscritto il: 26/10/13 16:03

Sponsor
 

Re: EXCEL WEB MULTIPLE PAGE TABLE QUERY

Postdi Flash30005 » 27/10/13 03:16

Ciao Brik32544 e benvenuta nel Forum

I link da te inviati sono corrotti, conducono ambedue alla stessa pagina (credo iniziale) e non alle pagine di cui fai riferimento
Un consiglio, quando inserisci un link di una pagina web devi inserirlo nel TagCode URL che trovi nell'editor
Ovvero avendo in memoria il link devi prima cliccare sul TagCode "URL" e incollare all'interno il link
Fuori da questo Tag potrai continuare la descrizione del tuo post.

ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: EXCEL WEB MULTIPLE PAGE TABLE QUERY

Postdi brik32544 » 27/10/13 10:50

Hai ragione! Il link non funziona :(

Riprongo qui la parte centarle del post

La PRIMA pagina è questa

http://accessoprogrammato.miur.it/2013/page.php?pag=TA&cdl=ME&id_ngrad=1

La SECONDA pagina è
http://accessoprogrammato.miur.it/2013/page.php?pag=TA&id_ngrad=1&cdl=ME&pagina=2

Dove notate che cambia

id_ngrad=1&cdl=ME&pagina=2

La terza pagina


http://accessoprogrammato.miur.it/2013/page.php?pag=TA&id_ngrad=1&cdl=ME&pagina=3
ahah..adesso ci ho preso gusto a usare queste parentesi URL :)

Ci sono 691 pagine e quindi il 2 deve diventare 3, 4 ....691

Ogni pagina web ha 100 records e la macro che deve copiare in toto su un foglio excel


Ho letto questo stupendo post
http://www.pc-facile.com/forum/viewtopic.php?t=88282

Il problema è simile. Ho provato a smanettare con quei macro ma non me lacavo.
Il fatto che quel sito (La borsa italiana) è drasticamente cambiato, non mi permette di fare dei test

Attendo le vostre perle di saggezza... :oops:
brik32544
Newbie
 
Post: 5
Iscritto il: 26/10/13 16:03

Re: EXCEL WEB MULTIPLE PAGE TABLE QUERY

Postdi Anthony47 » 27/10/13 20:49

Allora, partendo da UN FILE NUOVO, su Foglio1 crea una web query che "peschi" dall' indirizzo
Codice: Seleziona tutto
http://accessoprogrammato.miur.it/2013/page.php?pag=TA&id_ngrad=1&cdl=ME&pagina=1

Seleziona la tabella con i dati che ti interessano e importa i dati a partire da A1.
Accertati che non sia impostato "Aggiorna ogni N minuti" (tasto dx su A1, scegli Proprieta' intervallo dati; controlla che l' impostazione non sia spuntata).

Apri l' editor delle macro con Alt-F11; Menu /Inserisci /Modulo; copia questa macro nel frame vuoto di dx:
Codice: Seleziona tutto
Sub getTables()
Dim Dest As String, myRoot As String, I As Long, myRan As Range

Dest = "Foglio3"        '<< Il foglio dove sara' creato l' elenco
aaa = Selection.CurrentRegion.Address

myRoot = "URL;http://accessoprogrammato.miur.it/2013/page.php?pag=TA&id_ngrad=1&cdl=ME&pagina="
With Range("A1").QueryTable
    For I = 1 To 1000
        .Connection = myRoot & I
        .Refresh BackgroundQuery:=False
        Set myRan = Range(Range("A3"), Range("G3").End(xlDown))
        myRan.Copy Destination:=Sheets(Dest).Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
        If myRan.Rows.Count < 100 Then Exit For
        DoEvents
    Next I
End With
'
End Sub

Torna su excel, seleziona il foglio con la web query, lancia la macro e aspetta.
Ma tu, quale versione di Excel usi??

Il motivo per cui chiedo di partire da un nuovo file e' perche' voglio essere sicuro che sul file ci sia solo la web query che ti ho detto di creare.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13903
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: EXCEL WEB MULTIPLE PAGE TABLE QUERY

Postdi brik32544 » 27/10/13 23:20

Io non so come ringraziarti :oops:

Poche righe e funziona benissimo!

Mi ha scaricato 60000 records in qualche minuto!!! e senza errori!!! :!:

Dopo, pensando di potermela cavare sono andata su un'altra pagina dello stesso sito. la prima pagina è

https://accessoprogrammato.cineca.it/2013/studenti/graduatoria.php?&statica=1&pagina=1&user=STU26MP34463

mentre la seconda è

https://accessoprogrammato.cineca.it/2013/studenti/graduatoria.php?&statica=1&pagina=2&user=STU26MP34463

Quindi, il cambio numero pagina non è alla fine del URL.

Ho inserito questo nel tuo macro e ho cercato di modificare
Codice: Seleziona tutto
    .Connection = myRoot & I

in modo da mettere il "counter nel mezzo del URL. Penso che hai capito..Non ha funzionato :oops:

Mi puoi dire come cambiare il counter per renderlo funzionante? Anche qui ci sono 100 records per pagina.
Siccome è un accesso con un login, se vuoi ti posso mandare i codici di accesso.

Io uso Excel 2007 versione inglese (ho cambiato il nome dei fogli da Sheet a foglio 1 ecc

Di nuovo grazie per il grande aiuto
brik32544
Newbie
 
Post: 5
Iscritto il: 26/10/13 16:03

Re: EXCEL WEB MULTIPLE PAGE TABLE QUERY

Postdi Anthony47 » 27/10/13 23:33

Fai direttamente
Codice: Seleziona tutto
.Connection = "URL;https://accessoprogrammato.cineca.it/2013/studenti/graduatoria.php?&statica=1&pagina=" & I & "&user=STU26MP34463"

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13903
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: EXCEL WEB MULTIPLE PAGE TABLE QUERY

Postdi brik32544 » 29/10/13 10:00

Anthony...... G R A Z I E !!!!!!

Deve essere bello avere questa destrezza con il codice VB

io ho un libro per " esperti " si chiama "VB for Dummies" :lol: :lol:

Parla di VB 4 , ma che versione è VBA in Excel?
Di nuovo GRAZIE Anthony... ;)
brik32544
Newbie
 
Post: 5
Iscritto il: 26/10/13 16:03

Re: EXCEL WEB MULTIPLE PAGE TABLE QUERY

Postdi Anthony47 » 29/10/13 23:48

Ricorda che VB (Visual Basic) e VBA (Visual Basic for Applications, quello disponibile in Excel) sono prodotti diversi; molti concetti sono analoghi, ma i dettagli sono diversi e ti aiutera' la consultazione dell' help on line, una vera miniera di informazioni ed esempi.
Le versioni attuali di vba sono 6 oppure 7.

Ciao, alla prossima
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13903
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: EXCEL WEB MULTIPLE PAGE TABLE QUERY

Postdi matty97 » 08/10/16 11:24

Ciao a tutti, ho letto e riletto questo tread ma non ne vengo fuori, ogni volta che copio i dati mi sovrascrive io dati contenuti dalla cella A1 a quella A101, come posso risolvere?
Questo è il codice
Codice: Seleziona tutto
    Sub getTables()
    Dim Dest As String, I As Long, myRan As Range

    Dest = "Sheet1"        '<< Il foglio dove sara' creato l' elenco
    aaa = Selection.CurrentRegion.Address

    With Range("A1").QueryTable
        For I = 1 To 3
            .Connection = "URL;https://accessoprogrammato.cineca.it/2016/studenti/graduatoria.php?&statica=1&pagina=" & I & "&user=STU19MP80148"
            .Refresh BackgroundQuery:=False
            Set myRan = Range(Range("A1"), Range("E1").End(xlDown))
            myRan.Copy Destination:=Sheets(Dest).Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
            If myRan.Rows.Count < 90 Then Exit For
            DoEvents
        Next I
    End With
    '
    End Sub

Scusatemi se non mi sono espresso bene
matty97
Newbie
 
Post: 6
Iscritto il: 08/10/16 11:18

Re: EXCEL WEB MULTIPLE PAGE TABLE QUERY

Postdi Anthony47 » 08/10/16 23:46

Ciao matty97, benvenuto nel forum.
Immagino che stai dicendo che sul foglio Sheets1 i dati non vengono accodati ma i secondi si sovrappongono ai primi; per risolvere il problema avrei pero' bisogno di sapere che aspetto hanno i dati che importi dal sito; potrebbe bastare uno screenshot, purche' si vedano gli indirizzi (Riga / Colonna) compilati dalla query.
Per le istruzioni su come creare e allegare una immagine:
viewtopic.php?f=26&t=103893&p=605488#p605488

Ti aspettiamo...
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13903
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: EXCEL WEB MULTIPLE PAGE TABLE QUERY

Postdi matty97 » 09/10/16 20:02

Innanzitutto ti ringrazio per aver risposto, ora cerco di spiegare cosa ho fatto per aiutarti a capire e ovviamente allegerò le immagini. Per prima cosa apro un nuovo foglio e poi vado a importare dati dal web, scelgo la mia tabella e fin quà tutto ok,Parte iniziale della tabella Immagine e questa è la parte finale della tabella Immagine (Cancello i nomi per motivi di privacy), ora quando vado a crearmi una macro con il seguente codice
Codice: Seleziona tutto
Sub getTables()
    Dim Dest As String, I As Long, myRan As Range

    Dest = "Sheet1"        '<< Il foglio dove sara' creato l' elenco
    aaa = Selection.CurrentRegion.Address

    With Range("A1").QueryTable
        For I = 1 To 3
            .Connection = "URL;https://accessoprogrammato.cineca.it/2016/studenti/graduatoria.php?&statica=1&pagina=" & I & "&user=STU19MP80148"
            .Refresh BackgroundQuery:=False
            Set myRan = Range(Range("A1"), Range("E1").End(xlDown))
            myRan.Copy Destination:=Sheets(Dest).Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
            If myRan.Rows.Count < 90 Then Exit For
            DoEvents
        Next I
    End With
    '
    End Sub
e poi la avvio succede questa cosa: Schermata 1 https://postimg.org/image/bb9rv831p/ Schermata 2https://postimg.org/image/9d7nn9v4h/ Schermata 3https://postimg.org/image/ng8gwdggb/ Schermata 4https://postimg.org/image/ivq23e2yb/Schermata 5 https://postimg.org/image/5cngg8av5/ Schermata 6https://postimg.org/image/li89z3epx/ Schermata 7
https://postimg.org/image/cui12l859/ Schermata 8 https://postimg.org/image/lrca8gn0j/ Schermata 9https://postimg.org/image/gjbwe3r2h/ scusa mi sono reso solo alla fine che dovevo utilizzare il collegamento diretto per forum, spero funzioni lo stesso, grazie mille
matty97
Newbie
 
Post: 6
Iscritto il: 08/10/16 11:18

Re: EXCEL WEB MULTIPLE PAGE TABLE QUERY

Postdi matty97 » 09/10/16 22:53

matty97 ha scritto:Innanzitutto ti ringrazio per aver risposto, ora cerco di spiegare cosa ho fatto per aiutarti a capire e ovviamente allegerò le immagini. Per prima cosa apro un nuovo foglio e poi vado a importare dati dal web, scelgo la mia tabella e fin quà tutto ok,Parte iniziale della tabella https://postimg.org/image/bqpjqhp9x/ e questa è la parte finale della tabella Immagine (Cancello i nomi per motivi di privacy), ora quando vado a crearmi una macro con il seguente codice
Codice: Seleziona tutto
Sub getTables()
    Dim Dest As String, I As Long, myRan As Range

    Dest = "Sheet1"        '<< Il foglio dove sara' creato l' elenco
    aaa = Selection.CurrentRegion.Address

    With Range("A1").QueryTable
        For I = 1 To 3
            .Connection = "URL;https://accessoprogrammato.cineca.it/2016/studenti/graduatoria.php?&statica=1&pagina=" & I & "&user=STU19MP80148"
            .Refresh BackgroundQuery:=False
            Set myRan = Range(Range("A1"), Range("E1").End(xlDown))
            myRan.Copy Destination:=Sheets(Dest).Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
            If myRan.Rows.Count < 90 Then Exit For
            DoEvents
        Next I
    End With
    '
    End Sub
e poi la avvio succede questa cosa: Schermata 1 https://postimg.org/image/bb9rv831p/ Schermata 2https://postimg.org/image/9d7nn9v4h/ Schermata 3https://postimg.org/image/ng8gwdggb/ Schermata 4https://postimg.org/image/ivq23e2yb/Schermata 5 https://postimg.org/image/5cngg8av5/ Schermata 6https://postimg.org/image/li89z3epx/ Schermata 7
https://postimg.org/image/cui12l859/ Schermata 8 https://postimg.org/image/lrca8gn0j/ Schermata 9https://postimg.org/image/gjbwe3r2h/ scusa mi sono reso solo alla fine che dovevo utilizzare il collegamento diretto per forum, spero funzioni lo stesso, grazie mille
matty97
Newbie
 
Post: 6
Iscritto il: 08/10/16 11:18

Re: EXCEL WEB MULTIPLE PAGE TABLE QUERY

Postdi matty97 » 09/10/16 22:56

Scusa ho sbagliato a postare 2 volte il post, vorrei cancellare il post delle 09/10/16 19:02 , sai dirmi come si fa?
Aggiungo che nel post dove ho citato il post precendente è quello giusto
matty97
Newbie
 
Post: 6
Iscritto il: 08/10/16 11:18

Re: EXCEL WEB MULTIPLE PAGE TABLE QUERY

Postdi Anthony47 » 10/10/16 01:50

Dalle immagini io vedo che il risultato di una nuova pagina viene accodato al risultato gia' presente sul foglio; cosa c'e' di sbagliato?

Il messaggio superfluo lo cancellero' successivamente, adesso non vorrei eliminare materiale utile alla discussione.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13903
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: EXCEL WEB MULTIPLE PAGE TABLE QUERY

Postdi matty97 » 10/10/16 22:55

Prima cosa il ciclo for dovrebbe fare massimo 3 cicli, quindi arrivare fino alla cella 300 mentre qua ha riempito fino alla 808 e quindi è sballato, poi nelle prime 100 celle dovrebbero esserci le posizioni che vanno fino a 100 mentre qua le sovrascrive con le posizioni che vanno dalla 201 in poi, nel complesso io uso il for da 3 cicli solo per comodità a controllare se andasse tutto dovrebbe riempirmi 300 celle e non 808, e non capisco perchè all'inizio sovrascrivce le prime 100 caselle ad ogni ciclo for e poi succesivamente dalla casella 101 in poi inizia a riempire in questo modo: (questi numeri indicano la posizione in graduatoria) 1 fino alla 100 poi dalla 101 fino alla 200 dopo riinizia dal 1 fino al 100 poi salta direttamente alla 201 e va fino alla 300 e poi riinizia dal 1 e va fino al 100 e poi arriva fino al 200 e dopo riinizia dal 1 e arriva fino al 100 e si ferma, mentre in realta dovrebbe andare dalla posizione 1 fino alla 300 e stop. Come mai fa sta cosa?
Se apri le foto che ho allegato e guardi la posizione in graduatoria con il numero di celle puoi capire meglio invece di tutto sto casino che ho fatto a parole.
il problema è che dovrebbe in base a quanto imposto il numero di cicli stampare tot posizioni, invece qua anche se metto massimo 3 cicli e quindi dovrebbe arrivare alla pagina 3 e quindi stampare 300 posizioni e fermarrsi questo ne stampa 808.
Credo che ci sia un errore nel copiare le celle e nel range, visto che il ciclo for l'ho controllato e lo rispetta e pure l' incrementatore I rispetta il valore, gli ho controlatti con il debug, è questo che mi fa sospettare di queste due istruzioni di cui non ho capito bene il cosa fanno
Codice: Seleziona tutto
Set myRan = Range(Range("A1"), Range("E1").End(xlDown))                                          myRan.Copy Destination:=Sheets(Dest).Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
matty97
Newbie
 
Post: 6
Iscritto il: 08/10/16 11:18

Re: EXCEL WEB MULTIPLE PAGE TABLE QUERY

Postdi Anthony47 » 11/10/16 01:47

Capisco, ma io non so quante volte hai lanciato la procedura; ne' so che cosa c'era in Sheet1 quando l'hai lanciata la prima volta, ne' quante volte e' stata interrotta...
Facciamo cosi':
-cancella tutto quello che c'e' ora scritto in Sheet1
-poi aggiungi l'istruzione Stop in questa posizione:
Codice: Seleziona tutto
            DoEvents
            Stop            '<<< QUI
        Next I

In questo modo a ogni query che si conclude la macro si ferma su Stop e tu puoi controllare quante informazioni sono presenti nel foglio dove e' inserita la Query (in particolare su quale riga finisce la colonna E), e se queste stesse informazioni sono stete trasferite correttamente su foglio Sheet1.

Poi riseleziona il foglio con la Query, vai sulla macro e premi il tasto F5 per procedere con il secondo ciclo, e poi col terzo e ultimo.
Vediamo se cosi' si scopre qualcosa di utile.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13903
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: EXCEL WEB MULTIPLE PAGE TABLE QUERY

Postdi matty97 » 11/10/16 15:59

Ho messo lo stop e ho visto che comunque nel copiare si incasinava da solo, ho rimediato spostando la destinazione del foglio invece che 'sheet1' ho messo 'sheet2' lasciando comunque che copiasse i dati dal 'sheet1', grazie di tutto!
matty97
Newbie
 
Post: 6
Iscritto il: 08/10/16 11:18

Re: EXCEL WEB MULTIPLE PAGE TABLE QUERY

Postdi Anthony47 » 11/10/16 22:53

Beh, le istruzioni lo lasciavano intuire che il foglio della web query e quello dove volevi accumulare i risultati dovevano essere diversi... importante e' aver risolto.

Alla prossima!
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13903
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "EXCEL WEB MULTIPLE PAGE TABLE QUERY":


Chi c’è in linea

Visitano il forum: Nessuno e 8 ospiti