Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

EXCEL Query web da 2007 a 2010

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 Query web da 2007 a 2010

Postdi Francesco53 » 07/04/13 09:35

Buongiorno a tutto il Forum,
un file inviato ad un amico, prelevava dei dati da una pagina internet, il tutto funziona bene sino alla vers. excel 2007,
purtroppo con la 2010 si blocca chiedendo password inesistente.
Inserisco la macro di base e chiedo gentilmente se qualcuno può correggerla per essere utilizzata su Excel 2010.
Codice: Seleziona tutto
With ActiveSheet.QueryTables.Add(Connection:= _
            "URL;http://www.--------------.com/?area=----------------&action=Archivio&date=" & Agg _
            , Destination:=Range("A1"))
            .Name = "?area=-----------------&action=Archivio&date=" & Agg & "_1"
            .FieldNames = True
            .RowNumbers = False
            .FillAdjacentFormulas = False
            .PreserveFormatting = True
            .RefreshOnFileOpen = False
            .BackgroundQuery = True
            .RefreshStyle = xlInsertDeleteCells
            .SavePassword = False
            .SaveData = True
            .AdjustColumnWidth = True
            .RefreshPeriod = 0
            .WebSelectionType = xlAllTables
            .WebFormatting = xlWebFormattingNone
            .WebPreFormattedTextToColumns = True
            .WebConsecutiveDelimitersAsOne = True
            .WebSingleBlockTextImport = False
            .WebDisableDateRecognition = False
            .WebDisableRedirections = False
            .Refresh BackgroundQuery:=False
        End With

Ringrazio chi può darmi le giuste indicazioni.
Francesco
S.O. Vista e Office 2007
Francesco53
Utente Senior
 
Post: 647
Iscritto il: 20/02/10 18:45

Sponsor
 

Re: EXCEL Query web da 2007 a 2010

Postdi Anthony47 » 07/04/13 10:07

Ci stai chiedendo perche' un sito ignoto chiede una password?
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: 13904
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: EXCEL Query web da 2007 a 2010

Postdi Francesco53 » 07/04/13 11:26

Buongiorno Anthony,
ho solo evitato di scrivere il sito in quanto non sapevo se era corretto o no, comunque penso
che il problema non è del sito ma nella macro, come spiegato sopra è un sito normale in cui
non è richiesta password, il problema è che la macro con il 2010 non funziona, probabile
differenza nel vba, e fà la richiesta assurda di una password, ma il problema è solo nel
codice. Se qualcuno indipendentemente dal sito può visionare la macro per capire cosa il
2010 non digerisce bene, altrimenti buon pranzo a tutti e se necessario al posto dei ----,
vi scrivo il sito se non crea problemi.
Francesco
S.O. Vista e Office 2007
Francesco53
Utente Senior
 
Post: 647
Iscritto il: 20/02/10 18:45

Re: EXCEL Query web da 2007 a 2010

Postdi ricky53 » 07/04/13 17:22

Ciao,
non avendo il link del sito ho provato con un mio link però ho dovuto modificare il codice non sapendo cosa inserire in due istruzioni.
Ecco il codice che ho utilizzato, con il 2010:
Codice: Seleziona tutto
Sub Prova_Query()
    With ActiveSheet.QueryTables.Add(Connection:= _
            "URL;http://www.formula1.com/results/season/2013/893" _
            , Destination:=Range("A1"))
'            .Name = "?area=-----------------&action=Archivio&date=" & Agg & "_1"
            .FieldNames = True
            .RowNumbers = False
            .FillAdjacentFormulas = False
            .PreserveFormatting = True
            .RefreshOnFileOpen = False
            .BackgroundQuery = True
            .RefreshStyle = xlInsertDeleteCells
            .SavePassword = False
            .SaveData = True
            .AdjustColumnWidth = True
            .RefreshPeriod = 0
            .WebSelectionType = xlAllTables
            .WebFormatting = xlWebFormattingNone
            .WebPreFormattedTextToColumns = True
            .WebConsecutiveDelimitersAsOne = True
            .WebSingleBlockTextImport = False
            .WebDisableDateRecognition = False
            .WebDisableRedirections = False
            .Refresh BackgroundQuery:=False
    End With
End Sub

Tutto è andato bene senza richiesta di PSW.
Penso sia dovuto a
Codice: Seleziona tutto
            "URL;http://www.--------------.com/?area=----------------&action=Archivio&date=" & Agg _
            , Destination:=Range("A1"))
            .Name = "?area=-----------------&action=Archivio&date=" & Agg & "_1"


Se si può avere il link del sito possiamo fare le prove effettive.
Cosa devono contenere "Archivio" e "Agg" ???
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: EXCEL Query web da 2007 a 2010

Postdi Francesco53 » 07/04/13 18:08

Grazie Richy, ho pulito la macro come da te indicato, invio il file all'amico e poi ti farò sapere.
Francesco
S.O. Vista e Office 2007
Francesco53
Utente Senior
 
Post: 647
Iscritto il: 20/02/10 18:45

Re: EXCEL Query web da 2007 a 2010

Postdi ricky53 » 07/04/13 18:31

Ciao,
Attenzione: non avevo scritto di cancellare le istruzioni.
Non avendo il link non potevo "simulare" allora ho dovuto eliminarle.

Rimangono in attesa di risposta le domande che ti avevo fatto:

Cosa devono contenere "Archivio" e "Agg" ???.
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: EXCEL Query web da 2007 a 2010

Postdi Francesco53 » 09/04/13 13:24

Ciao Ricky ed un saluto a tutti gli altri,
ti posto un'altra macro che da lo stesso problema con excel 2010,
questa è sicuramente più semplice, purtroppo il risultato è lo stesso,
chiede login e password che non dovrebbe chiedere, penso possa dipendere
da qualche configurazione o dal fatto che la pagina interessata è .asp.
Codice: Seleziona tutto
Sub Aggiorna()
    With ActiveSheet.QueryTables.Add(Connection:= _
        "URL;http://www.lottoced.com/lotto/Estrazioni.aspx", Destination:=Range( _
        "$A$4"))
        .Name = "Estrazioni"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .WebSelectionType = xlSpecifiedTables
        .WebFormatting = xlWebFormattingNone
        .WebTables = "15"
        .WebPreFormattedTextToColumns = True
        .WebConsecutiveDelimitersAsOne = True
        .WebSingleBlockTextImport = False
        .WebDisableDateRecognition = False
        .WebDisableRedirections = False
        .Refresh BackgroundQuery:=False
    End With
End Sub

Attendo nuove indicazioni su come superare la difficoltà su esposta.
Grazie
Francesco
S.O. Vista e Office 2007
Francesco53
Utente Senior
 
Post: 647
Iscritto il: 20/02/10 18:45

Re: EXCEL Query web da 2007 a 2010

Postdi Anthony47 » 09/04/13 14:20

E' il solito problema delle web query che vanno in crisi su pagine create dinamicamente tramite script (vedi http://support.microsoft.com/kb/277899/en-us); evidentemente VBA 6 (XL2003) e VBA 7 (XL2007) hanno comportamenti diversi che sollecitano risposte diverse dal web server.
In questi casi io suggerisco di sfruttare funzioni, metodi e proprieta' rese disponibili dalla libreria mshtml.tlb, corrispondente alla voce Microsoft html object library dell' editor delle macro.
Ad esempio una macro come questa apre la tua pagina, cerca nel sorgente l' elemento con ID="TabellaEstrazioniLotto1_Estrazioni" e poi importa in un nuovo foglio la tabella in questione:
Codice: Seleziona tutto
Sub GetTabs()
'
myURL = "http://www.lottoced.com/lotto/Estrazioni.aspx"
Set IE = CreateObject("InternetExplorer.Application")
   
'Sheets("Foglio3").Select
'Range("A:C").Clear
   
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 + 2 Or Timer < myStart Then Exit Do
Loop
'
'Leggi le tabelle, su un nuovo foglio
Worksheets.Add
'Application.Goto (Sheets("Foglio1").Range("A1"))
'Cells.Clear
Set my0Coll = IE.document.getElementById("TabellaEstrazioniLotto1_Estrazioni")
Set myColl = my0Coll.getElementsByTagName("TABLE")
For Each myItm In myColl
    For Each trtr In myItm.Rows
        For Each tdtd In trtr.Cells
            Cells(I + 1, J + 1) = tdtd.innerText
            J = J + 1
        Next tdtd
        I = I + 1: J = 0
    Next trtr
I = I + 1
Next myItm
'
Stop     'Vedi testo
'
'Chiusura IE
IE.Quit
Set IE = Nothing
End Sub

La riga Stop e' messa solo per consentire la verifica iniziale che l' importazione e' corretta, poi si puo' eliminare.
Con piccoli adattamenti ti consentira' di importare nel foglio /range di tuo interesse

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: 13904
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: EXCEL Query web da 2007 a 2010

Postdi Francesco53 » 09/04/13 15:07

Buongiorno Anthony,
ti ringrazio per la risposta che purtroppo conferma le difficoltà precedentemente ipotizzate.
Per fortuna che io non ho il 2010, ed evito queste difficoltà.
La politica di microsoft diventa sempre più incomprensibile, continuerò ad utilizzare il mio
vecchio 2003 e 2007, e non farò più file che dovessero utilizzare webquery a chi ha il 2010.
Grazie
Francesco
S.O. Vista e Office 2007
Francesco53
Utente Senior
 
Post: 647
Iscritto il: 20/02/10 18:45

Re: EXCEL Query web da 2007 a 2010

Postdi Anthony47 » 09/04/13 22:02

Se lavori con query web allora dovresti evitare di usarle su pagine create dinamicamente; questo dice Microsoft, tutto il resto e' aleatorio.

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: 13904
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "EXCEL Query web da 2007 a 2010":


Chi c’è in linea

Visitano il forum: Nessuno e 11 ospiti