Condividi:        

Call Macro

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

Call Macro

Postdi radina » 09/07/17 14:08

Buona Domenica a tutti,
è la prima volta che scrivo, pertanto spero di rispettare le regole del forum.

Il mio problema è il seguente: ho un foglio in excel che automaticamente scarica i dati da una pagina web, vorrei che a conclusione del download dei dati (quando quindi il foglio excel da vuoto diventa pieno di dati) partisse l'esecuzione di una particolare macro.

Ho cercato parecchio su google e anche su libri specializzati, purtroppo non ho trovato nessuna soluzione e qualsiasi adattamento di soluzioni sviluppate per altre esigenze mi ha dato problemi.

Spero di essere stato chiaro e spero possiate aiutarmi
Grazie a tutti :D :D
radina
Newbie
 
Post: 4
Iscritto il: 09/07/17 14:02

Sponsor
 

Re: Call Macro

Postdi alfrimpa » 09/07/17 16:10

Ma il download dei dati come avviene? Con un'altra macro?

Puoi allegare un file di esempio e su questo descrivere quelli che vuoi fare/ottenere?
Avatar utente
alfrimpa
Utente Senior
 
Post: 1201
Iscritto il: 30/12/13 17:01
Località: Napoli

Re: Call Macro

Postdi patel » 09/07/17 16:15

il tuo foglio in excel che automaticamente scarica i dati da una pagina web lo fa come ? tramite una macro ? se è così al termine delle macro basta chiamare l''altra macro.
Per aiutarti e necessario che tu alleghi un link al tuo file e che spieghi più nel dettaglio cosa vuoi fare.
patel
Utente Senior
 
Post: 309
Iscritto il: 24/04/12 16:03

Re: Call Macro

Postdi radina » 09/07/17 16:29

Avete pienamente ragione, provvedo subito.
Ho una cartella di lavoro costituita da due fogli: "Orari" e "Prospetto". Il foglio "Orari" scarica i dati da una pagina web tramite la seguente macro

Sub AggiornaDati()
'
' AggiornaDati
ActiveWorkbook.RefreshAll
Sheets("Orari").Select
Range("A1").Select
End Sub

Una volta che i dati sono stati scaricati e quindi il foglio "Orari" non è più vuoto, necessito di copiare la colonna A nel foglio "Prospetto". La mia idea iniziale era utilizzare la seguente macro

Sub AggiornaDati()
'
' AggiornaDati
ActiveWorkbook.RefreshAll
Sheets("Orari").Select
Columns(1).Copy
Worksheets("Prospetto").Columns(1).Paste
End Sub

Il problema è rappresentato dal fatto che, suppongo, Excel esegue il comando ActiveWorkbook.RefreshAll e poi passa ai comandi seguenti. Il download dei dati tuttavia richiede un certo tempo e quindi arrivato al comando "copy" mi da errore o comunque non mi incolla niente. Per questo avevo pensato che la soluzione fosse richiamare un'altra macro (appositamente creata per copiare e incollare) nel momento in cui la cella A1 del foglio Orari risultasse riempita. Spero di essere stato più chiaro, in caso contrario fatemelo presente. Grazie :)
radina
Newbie
 
Post: 4
Iscritto il: 09/07/17 14:02

Re: Call Macro

Postdi ricky53 » 09/07/17 17:19

ciao,
un file di esempio, senza dati riservati ma con valori fittizi, è utile.
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Call Macro

Postdi radina » 09/07/17 17:57

Ecco a voi il link del file :D
Allora mi spiego meglio facendo proprio riferimento a quest'ultimo.
Se faccio partire prima la macro "AggiornaDati", aspetto il download dei dati e solo quando il foglio "Orari" non è più vuoto faccio partire la macro "CopiaDati", il tutto funziona e in questo caso la cella A1 del foglio Orari viene copiata nel foglio "Prospetti". Se invece faccio partire la macro "Prova" come potete notare non viene copiato nulla. E niente, vorrei superare questa problematica, anche tenendo conto che il download dei dati richiede tempi variabili :D
https://www.mediafire.com/?24sq2s0ca1ug2gq
radina
Newbie
 
Post: 4
Iscritto il: 09/07/17 14:02

Re: Call Macro

Postdi patel » 09/07/17 21:37

prova così:
Codice: Seleziona tutto
Sub AggiornaDati()
Range("Football").QueryTable.BackgroundQuery = False
ThisWorkbook.RefreshAll
Columns(1).Copy Worksheets("Prospetti").Range("A1")
End Sub
patel
Utente Senior
 
Post: 309
Iscritto il: 24/04/12 16:03

Re: Call Macro

Postdi radina » 09/07/17 21:46

Sinceramente non so come hai fatto, ma funziona alla grande :D
Studierò il tuo codice per imparare, grazie davvero ho perso due giorni per cercare di trovare una soluzione :oops:
Grazie nuovamente
radina
Newbie
 
Post: 4
Iscritto il: 09/07/17 14:02

Re: Call Macro

Postdi patel » 09/07/17 21:56

ho semplicemente cercato con google "vba wait for query done" ed ho provato i vari suggerimenti
patel
Utente Senior
 
Post: 309
Iscritto il: 24/04/12 16:03


Torna a Applicazioni Office Windows


Topic correlati a "Call Macro":


Chi c’è in linea

Visitano il forum: Nessuno e 101 ospiti