Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Query Web Parametri Variabili

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

Query Web Parametri Variabili

Postdi fabio_effe » 02/08/16 17:36

Ciao a tutti,
sono nuovo del forum ma apprezzo già da tempo il vostro lavoro ed i preziosi contributi che ne derivano.

Mi trovo a chiedervi un aiuto, se possibile, in merito alla seguente situazione:

devo eseguire una serie di query da pagina web, le quali hanno tutte la stessa identica impaginazione e riferimenti (stesse tabelle da importare), ma la difficoltà sta nel fatto che una parte iniziale dell'url è fisso mentre la fine (contentente il codice identificativo) cambia per ogni query che devo eseguire.

Ora, siccome dispongo di una colonna con tutti i codici identificativi che vanno a comporre l'url completo, vi chiedo se fosse possibile costruire un qualcosa che automatizzasse il tutto; sarebbe l'ideale che per ogni query venisse creato un foglio dedicato e il nome del foglio andato sempre a pescare dalla colonna con i codici.


Ho provato a registrare una macro, ma inutile a dirsi, è venuto fuori un pastrocchio.

Ringrazio anticipatamente chiunque possa/voglia aiutarmi.
fabio_effe
Newbie
 
Post: 7
Iscritto il: 02/08/16 17:16

Sponsor
 

Re: Query Web Parametri Variabili

Postdi fabio_effe » 02/08/16 20:48

Se può essere utile, cercando qua e là, e smanettando un po', sono riuscito ad abbozzare una prima macro che mi crea un tot di fogli nominandoli in base ai valori di una colonna:

Sub CreaFogli()
Dim mNome As String
Application.ScreenUpdating = False
For r = 2 To 10
mNome = Worksheets("titoli").Cells(r, 1)
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Name = mNome
ActiveSheet.Range("A1") = mNome
ActiveSheet.Range("A2:A10").ClearContents
Next
Application.ScreenUpdating = True
End Sub

Ora rimane la ben più complicata questione di inserire in ogni foglio la query risultante da un url fisso + il codice che varia.
fabio_effe
Newbie
 
Post: 7
Iscritto il: 02/08/16 17:16

Re: Query Web Parametri Variabili

Postdi Anthony47 » 03/08/16 02:01

Ciao fabio_effe, benvenuto nel forum.
La questione non e' completamente chiara...
Il tuo elenco di codici identificativi con che frequenza cambia? E cosa deve succedere al foglio appartenente al codice xxx se domani quel codice non dovesse essere piu' presente in elenco? Mediamente quante voci l'elenco conterra'? Una volta impostate le query, che uso farai del file?

Queste risposte sono propedeutiche a impostare il lavoro nel modo piu' corretto, ti aspetto.

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

Re: Query Web Parametri Variabili

Postdi fabio_effe » 03/08/16 17:44

Ciao Anthony e grazie anzitutto.

In realtà l'elenco con i codici è fondamentalmente fisso, salvo che poi avrò un tot di elenchi in tot file diversi, ma una volta impostata la macro la si riadatta per ogni file.

Il fatto che un codice possa non più essere presente un giorno è certamente possibile, tuttavia lo escluderei in quanto si tratta di codici identificativi pressochè invariati; andrebbe benissimo (ma non fondamentale) un messaggio del tipo "codice non trovato" all'interno del foglio creato.

Come numero di voci dell'elenco codici (e quindi di fogli creati) al momento siamo sui 100 abbondanti; dico al momento in quanto non escludo che in futuro possano aumentare.

Una volta impostate le query, ogni foglio conterrà dei dati che si aggiorneranno e che mi serviranno come monitoraggio.

Spero di aver fornito quanti più elementi utili all'impostazione del lavoro, al contrario sarò a disposizione.

Ti ringrazio
fabio_effe
Newbie
 
Post: 7
Iscritto il: 02/08/16 17:16

Re: Query Web Parametri Variabili

Postdi fabio_effe » 03/08/16 18:24

Se può servire mando i parametri della query che ho provato a registrare, con i riferimenti delle tabelle, etc.:

.Name = "esempio"
.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 = "7,8,9,10,13,15"
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
fabio_effe
Newbie
 
Post: 7
Iscritto il: 02/08/16 17:16

Re: Query Web Parametri Variabili

Postdi Anthony47 » 04/08/16 23:29

Allora potremo darti una mano a impostare gli N fogli; per questo scopo pubblica un file con due fogli:
il primo contenente un elenco di 4-5 desinenze da usare per le query
il secondo contenente gia' la query a uno dei link con le opzioni e le proprieta' che ti servono

Per le istruzioni su come allegare un file:
viewtopic.php?f=26&t=103893&p=605487#p605487

Mi spiace per la lentezza con cui procediamo, ma in questi giorni passo raramente davanti al computer.

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

Re: Query Web Parametri Variabili

Postdi fabio_effe » 05/08/16 12:48

Nessun problema per le tempistiche, non c'è alcuna fretta, e poi capisco perfettamente che dato il periodo si abbia altro da fare. :)

Allego il file come da richiesta: ho inserito nel foglio codici 5 desinenze e nel foglio query ho registrato una macro eseguendo una query all'indirizzo che mi servirà, in cui la parte finale in maiuscolo corrisponde ai codici variabili (che per comodità saranno anche i nomi dei vari fogli creati).

https://drive.google.com/open?id=0B4rO54ZMV_m5Z2JKc3hTdmFOSjg

Per qualsiasi chiarimento rimango a disposizione

Grazie
fabio_effe
Newbie
 
Post: 7
Iscritto il: 02/08/16 17:16

Re: Query Web Parametri Variabili

Postdi fabio_effe » 12/08/16 02:29

Rieccomi di nuovo, nell'attesa ho provato a cimentarmi nuovamente nell'assemblaggio di una macro dai vari pezzi postati in precedenza, ma con scarsissimi risultati.

Mi rimetto completamente al vostro sapere. ;)

Fatemi sapere se ci sono problemi con l'apertura del file allegato.

Grazie
fabio_effe
Newbie
 
Post: 7
Iscritto il: 02/08/16 17:16

Re: Query Web Parametri Variabili

Postdi Anthony47 » 13/08/16 02:50

Finite le ferie ho un po' di lavoro arretrato, ma vediamo di fare un passo avanti...
Teniamo il foglio "Query" come Modello su cui basare gli altri fogli, e copiamolo su N nuovi fogli (quanti sono i titoli presenti sul foglio Codici)
Questo si puo' ottenere inserendo in un nuovo Modulo del vba il seguente codice:
Codice: Seleziona tutto
Sub CreaWQSh()
'Vedi http://www.pc-facile.com/forum/viewtopic.php?f=26&t=107260
Dim I As Long, CD As Worksheet, NwSh As Long
'
Set CD = Sheets("Codici")
For I = 1 To CD.Cells(Rows.Count, 1).End(xlUp).Row
    If Not ShExists(CD.Cells(I, 1).Value) Then
        Sheets("Query").Copy After:=Sheets(Sheets.Count)
        ActiveSheet.Name = CD.Cells(I, 1).Value
        Range("E1") = CD.Cells(I, 1).Value
        With Range("A4").QueryTable
'            cconn = .Connection
            .Connection = Replace(.Connection, "A2A.MI", CD.Cells(I, 1), 1, , vbTextCompare)
            .Refresh False
            NwSh = NwSh + 1
        End With
    End If
Next I
MsgBox ("Completato..." & vbCrLf & "(" & NwSh & " fogli creati)")
End Sub

Function ShExists(ByVal ShName As String) As Boolean
Dim DumMy As Worksheet
'
On Error Resume Next
Set DumMy = Sheets(ShName)
On Error GoTo 0
If DumMy Is Nothing Then ShExists = False Else ShExists = True
End Function

Operativamente, partendo dal file che contiene i fogli Codici e Query:
-premi Alt-F11 per aprire l'editor delle macro
-Menu /Inserisci /Modulo
-Copia il codice e incollalo nel frame dx del modulo appena creato

Poi torna su Excel e, dopo aver compilato l'elenco dei titoli, lancia la macro CreaWQSh:
-premi Alt-F8
-seleziona CreaWQSh dall'elenco di macro disponibili
-premi Esegui

Se non esiste un foglio col NomeTitolo allora il foglio sara' creato copiandolo da foglio Query, l'Url della webquery sara' aggiornato, il foglio verra' nominato come il NomeTitolo; se il foglio esiste gia' non sara' fatta nessuna operazione.

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

Re: Query Web Parametri Variabili

Postdi fabio_effe » 19/08/16 18:01

Eccomi anch'io di ritorno.

Caro Anthony, un semplice grazie credo non basti, hai confezionato perfettamente la soluzione che cercavo.
L'ho inserita nel mio foglio e lavora alla grande.
Grazie mille davvero a te e tutto il gruppo e per chi è ancora a riposo, buon proseguimento!

A presto

Fabio
fabio_effe
Newbie
 
Post: 7
Iscritto il: 02/08/16 17:16


Torna a Applicazioni Office Windows


Topic correlati a "Query Web Parametri Variabili":


Chi c’è in linea

Visitano il forum: Nessuno e 5 ospiti