Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

Scaricare Dati da tabella WEB accettando delle condizioni

Ultimo Aggiornamento: 25/03/2019 21:02
Post: 1
Registrato il: 13/03/2019
Città: TRENTO
Età: 60
Utente Junior
Office 365
OFFLINE
13/03/2019 08:48

Buongiorno a tutti
avrei una difficoltà legata allo scarico giornaliero di dati dal WEB e per la quale vi chiedo aiuto.
Ogni giorno dal sito dal GME (Gestore Mercato Elettrico) dovrei copiare una tabella di dati e riportarla su un foglio Excel in una posizione sempre uguale. Purtroppo ad ogni collegamento devo prima porre 2 flag e convalidare con un pulsante l'ok della privacy prima di raggiungere la tabella.

Il sito in questione è: "http://www.mercatoelettrico.org/It/Esiti/MGP/EsitiMGP.aspx"
su cui necessita apporre i flag e convalidare con il pulsante, poi si può accedere alla tabella oggetto del mio interesse al link:
"http://www.mercatoelettrico.org/It/Esiti/MGP/TabellaEsitiMGPPrezzi.aspx"



Per scaricare i dati uso questo pezzo di codice  

  URL1 = "URL;http://www.mercatoelettrico.org/It/Esiti/MGP/TabellaEsitiMGPPrezzi.aspx"
        With ActiveSheet.QueryTables.Add(Connection:=URL1, Destination:=Range("$A$1"))
            .Name = ""
            .FieldNames = True
            .RowNumbers = False
            .FillAdjacentFormulas = False
            .PreserveFormatting = True
            .RefreshOnFileOpen = True
            .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

Spero che qualcuno possa aiutarmi a risolcvere questa mia difficoltà
Ringrazio per il tempo che vorrete dedicarmi

X
Post: 2.181
Registrato il: 06/04/2013
Utente Veteran
2010
OFFLINE
13/03/2019 10:57

Ciao
Spero tu sappia qualcosa di programmazione.
Leggi attentamente quanto riportato ad inizio codice, relativamenbte ai riferimenti da spuntare in VB.

In sintesi, quelle due checkBox si chiamano:
- ctl00$ContentPlaceHolder1$CBAccetto1
e
- ctl00$ContentPlaceHolder1$CBAccetto2
mentre il pulsante accetto si chiama:
- ctl00$ContentPlaceHolder1$Button1

una volta individuati, si spuntano i primi due e si clicca sul terzo (vedi macro).

Prova ad eseguire questa procedura per controllare se accedi.

Saluti

Sub MercatoElettrico()
'NOTA BENE: Vuole riferimenti a: _
 - Microsoft Internet Controls _
 - Microsoft HTML Objects Library

Dim mURL As String
Dim mPage As MSHTML.HTMLDocument, mIE As New SHDocVw.InternetExplorer
Dim mInput As MSHTML.HTMLInputElement, mCollection As MSHTML.IHTMLElementCollection
Set mIE = CreateObject("InternetExplorer.Application")
k = 0
With mIE
    .Navigate "http://www.mercatoelettrico.org/It/Esiti/MGP/EsitiMGP.aspx"
    .Visible = True
    Do While .Busy: DoEvents:  Loop
    Do While .ReadyState <> 4: DoEvents: Loop
    Set mPage = .Document
    Set mCollection = mPage.getElementsByTagName("INPUT")
    Z = 0
    For Each mInput In mCollection
        If mInput.Name = "ctl00$ContentPlaceHolder1$CBAccetto1" Then
            mInput.Checked = True
            k = k + 1
        End If
        
        If mInput.Name = "ctl00$ContentPlaceHolder1$CBAccetto2" Then
            mInput.Checked = True
            k = k + 1
        End If
        
        If mInput.Name = "ctl00$ContentPlaceHolder1$Button1" Then
            mInput.Click
            k = k + 1
        End If
        If k = 3 Then Exit For
    Next mInput
End With
'mIE.Quit
Set mIE = Nothing

End Sub




[Modificato da dodo47 13/03/2019 12:14]
Domenico
Win 10 - Excel 2016
Post: 1
Registrato il: 13/03/2019
Città: TRENTO
Età: 60
Utente Junior
Office 365
OFFLINE
25/03/2019 21:02

x dodo47
Ciao dodo47

il mio lavoro non mi permette molte volte di rispondere prontamente ai msg. di questo ti chiedo scusa.
Il lavoro ed i consigli sono tutti giusti e perfetti. Funziona tutto e … che dire non so come ringraziarti per la parte che mi hai scritto. solo che il sistema a query non funziona correttamente ogni volta che lo interrogo come appendice alla tua macro non apre il foglio ma si limita a riportarmi alla pagina in cui necessita "fleggare" e premere i pulsanti.


Mi chiedevo se brutalmente esisteva una funzione copy-paste dei dati della tabella che a me serve copiare


intanto resto debitore i una cena.

grazie infinite Marco
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 11:59. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com