Scaricare Dati da tabella WEB accettando delle condizioni

Versione Completa   Stampa   Cerca   Utenti   Iscriviti     Condividi : FacebookTwitter
PaperinoSub
00mercoledì 13 marzo 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
dodo47
00mercoledì 13 marzo 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




PaperinoSub
00lunedì 25 marzo 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
Questa è la versione 'lo-fi' del Forum Per visualizzare la versione completa clicca qui
Tutti gli orari sono GMT+01:00. Adesso sono le 14:41.
Copyright © 2000-2024 FFZ srl - www.freeforumzone.com