Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

VBA Excel query scarico dati WEB

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

VBA Excel query scarico dati WEB

Postdi EnricoBanco » 06/01/21 20:06

Ciao Anthony, ciao a tutti e Felice Anno Nuovo :)

Scarico dati da WEB tramite Recupero Dati di Excel.
La macro, creata con il registratore macro, si collega ad un indirizzo WEB del quale è necessario verificare in quale Table sono
i dati di interesse. In questo tipo di scarico sono in Table 2 e questo è verificabile durante la registrazione della macro.
Si procede da menù Dati\Recupera dati\Da altre origini\Da WEB e si inserisce l'indirizzo desiderato.
L'opzione è Carica per scaricare i dati con il filtro già applicato nel foglio di destinazione chiamato Scarico (già presente al lancio della macro).
Per le elaborazioni successive è necessario però cancellare la query di collegamento al WEB ed il foglio dati dove avviene lo scarico dati e smanettando sono riuscito a inserire questo codice:
ActiveWorkbook.Queries.Item("Table 2").Delete



Codice: Seleziona tutto
Sub Scarico_dati_dal_WEB()

'Scarica i dati dal WEB
'Dalla Table 2 di Yahoo Finance scarica cinque mesi di dati

Application.DisplayAlerts = False

'Cancella foglio di scarico dati e la query

ActiveWorkbook.Queries.Item("Table 2").Delete

Sheets("Scarico").Select
ActiveWindow.SelectedSheets.Delete

'Scarica i dati dal web

    ActiveWorkbook.Queries.Add Name:="Table 2", Formula:= _
        "let" & Chr(13) & "" & Chr(10) & "    Origine = Web.Page(Web.Contents(""https://it.finance.yahoo.com/quote/ENEL.MI/history?p=ENEL.MI""))," & Chr(13) & "" & Chr(10) & "    Data2 = Origine{2}[Data]," & Chr(13) & "" & Chr(10) & "    #""Modificato tipo"" = Table.TransformColumnTypes(Data2,{{""Data"", type date}, {""Aperto"", type text}, {""Alto"", type text}, {""Basso"", type text}, {""Chiusura*"", type text}, {""Chiusura aggiustata**"", type text}, {""" & _
        "Volume"", type text}})" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & "    #""Modificato tipo"""
    ActiveWorkbook.Worksheets.Add
    With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
        "OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=""Table 2"";Extended Properties=""""" _
        , Destination:=Range("$A$1")).QueryTable
        .CommandType = xlCmdSql
        .CommandText = Array("SELECT * FROM [Table 2]")
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .PreserveColumnInfo = True
        .ListObject.DisplayName = "Table_2"
        .Refresh BackgroundQuery:=False
    End With
   
    'Rinomina foglio di scarico dati
    ActiveSheet.Activate
    ActiveSheet.Name = "Scarico"
   
    Application.DisplayAlerts = True
   
End Sub
EnricoBanco
Utente Junior
 
Post: 74
Iscritto il: 18/07/17 06:29

Sponsor
 

Re: VBA Excel query scarico dati WEB

Postdi EnricoBanco » 06/01/21 20:34

Oppure il classico Aggiorna Dati per aggiornare lo scarico dati che corrisponde alla registrazione macro:
ActiveWorkbook.RefreshAll

Ma fare le cose un pò più complicate è più divertente
EnricoBanco
Utente Junior
 
Post: 74
Iscritto il: 18/07/17 06:29

Re: VBA Excel query scarico dati WEB

Postdi Anthony47 » 07/01/21 02:16

Non ho capito se hai fatto una domanda e poi hai trovato anche la risposta.
Comunque se per le elaborazioni successive e' necessario che venga cancellata la query (chissa' perche', pero') allora la mia proposta e' che lasci la query al suo posto e se proprio necessario fai un copia incolla dei dati, come solo "valori" + formato, su un altro foglio.

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


Torna a Applicazioni Office Windows


Topic correlati a "VBA Excel query scarico dati WEB":


Chi c’è in linea

Visitano il forum: Nessuno e 44 ospiti