a) ho provato ad inserire, nella colonna Descrizione, Zona Euro - IPC (Indice dei Prezzi al Consumo) (Mensile)
b) nella colonna Url il seguente link Inflazione Euro Zona oggi | IPC Indice prezzi (mensile) (investing.com)
c) nella colonna Nome Foglio ho inserito Foglio1 (poi ho provato anche con un nuovo Foglio3)
d) nella colonna Nome Tabelle ho inserito Tabella7
Quando clicco su aggiorna dati mi compare il seguente popup: Microsoft Visual Basic - Errore di run time "1004": Errore definito dall'applicazione o dall'oggetto
Se cancello la riga che ho inserito e clicco su Aggiorna dati è tutto a posto.
Hai inserito una nuova tabella nominata Tabella7?
Come spiegato il foglio e la tabella indicati nell'elenco devono essere già presenti.
Quindi se tu dovessi indicare come nome di un foglio "Costruzioni" dovresti avere già presente un foglio con tale nome
Se tu poi indicassi Tabella7 in quel foglio dovresti avere già presente una tabella nominata Tabella7.
Io ho appena provate ad aggiungere un foglio nominato Foglio3, inserire una tabella, le cui intestazioni di colonna partono da A3, una tabella nominata Tabella7.
Ho aggiunto una riga alla tabella del foglio URL inserendo in
Descrizione: Stati Uniti - Indice dei principali prezzi di spesa per consumi (Annuale)
Url: https://it.investing.com/economic-calendar/core-pce-price-index-905
Nome Foglio: Foglio3
Nome Tabella: Tabella7
e l'aggiornamento è avvenuto correttamente.
Ho anche provato con un altra url ma c'è un problema la cui risoluzione comporta una modifica alla query.
Vedi questa url: https://www.investing.com/economic-calendar/cpi-733
Noterai che le intestazioni non sono in italiano ma in inglese (a differenza delle altre).
| Release Date |
Time |
Actual |
Forecast |
Previous |
Inoltre è differente anche il formato data
Dec 12, 2023 (Nov)
La gestione di questi dati, in particolare la data, richiedere una modifica sostanziale della query di partenza o, più probabilmente, una query differente.
Magari c'è anche la possibilità di gestire in un'unica query il tutto, "leggendo" il contenuto e con degli If ... Then ... else decidere che tipo di sostituzione applicare, ma io ancora non sono arrivato a questi livelli :-)
Quindi verifica per le varie Url se i dati riportati sono in italiano pena avere un messaggio di errore da parte della gestione della query.
Ti chiedo:
a) una volta inseriti i dati, la tabella a 6 righe la dovrebbe inserire in automatico nel foglio indicato?
b) se volessi inserire le altre 18 righe, le posso inserire sotto le tabelle a 6 righe e poi, ad ogni aggiornamento, scarta le righe come indicato in precedenza?
Per tutte le tabelle di tuo interessi potresti popolarle, manualmente, con una serie di record a partire dalla prima data "mancante" dopo le prime 6 date scaricabili via query.
Una volta fatto ciò lanciare la procedura di aggiornamento. Alle righe già presenti verranno aggiunte le 6 righe prelevate dalla tabella della query.
Come ho detto ho impostato un parametro in modo che nel caso in cui la tabella, dopo l'eliminazione dei duplicati per data, superi le 24 righe quelle in eccesso, a partire dalla data meno recente, vengano eliminate.
In tal modo si avranno sempre 24 righe.
Ma se tu volessi 30 righe basterebbe andare a modificare quel parametro nel progetto VBA.
Si tratta della voce:
Const NumMaxRecord As Long = 24
se tu al posto di 24 scrivessi 30 verrebbero mantenute almeno 30 righe in ogni tabella.