Condividi:        

Inserire web dentro excel

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

Inserire web dentro excel

Postdi piter123 » 07/11/07 18:44

Salve, all'interno di un foglio excel (in alternativa anche all'interno di una form di vb) dovrei caricare un grafico da un link in internet che è il seguente

http://ifbicpi.infobolsanet.com/grafico ... E&RT=1&I2=

in modo tale da visualizzare il grafico del link e fare in modo che ogni 60 secondi questo effettui un refresh.

Grazie
piter123
Utente Senior
 
Post: 190
Iscritto il: 07/11/07 18:31

Sponsor
 

Postdi Anthony47 » 08/11/07 01:34

Per quello che ne so, non puoi farlo con una query web ma con una macro si. In linea di massima la macro e’ questa:

Codice: Seleziona tutto
Sub GraphWeb()
Range("A1").select     '<<< Inserire indirizzo
ActiveSheet.Pictures.Insert ("http://ifbicpi.infobolsanet.com/graficos/IFBgetchart.dll?GetChart?MV=IVV1X&TR=1D&DIF=15&UN=DBPI01&FRECUENCY=M1&HEIGHT=847&WIDTH=868&CHARTYPE=5&TH=Y&DI=001&LAN=DE&RT=1&I2=").Select
ActiveCell.Value = Selection.ShapeRange.Name
End Sub


Poi, utilizzando il metodo “OnTime” farai in modo di scedulare questa macro ogni 60 secondi; cerca “OnTime” sul forum, ci sono stati parecchie discussioni in merito. Ricordo che la mia raccomandazione e’ di rischedulare (o no) sulla base di un flag che metterai su una cella del foglio di lavoro.

Dovrai inoltre cancellare il grafico precedente prima di inserire il nuovo; avendo memorizzato il nome dell’ immagine nella cella attiva potrai utilizzare questa istruzione, da inserire prima di scaricare il nuovo grafico:

Codice: Seleziona tutto
ActiveSheet.Shapes(ActiveCell.Value).Delete


So che sono istruzioni in "scatola di montaggio", e quindi devi metterle insieme tu; ma non sapendo come e’ organizzato il tuo foglio non posso fare di piu’ (senza contare che se il montaggio lo fai tu la soddisfazione alla fine sara’ ben maggiore).

Per ogni bisogno, siamo qua. Ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Postdi piter123 » 08/11/07 11:25

intanto grazie
All'interno però di altri controlli sia in excel che all'interno della parte di vb non trovo l'elemento graphweb

dopo lo reperisco.

In alternativa si potrebbe usare webrowser o image o picturebox per leggere l'url di prima, se sì mi dai qualche suggerimento.

Ancora grazie
piter123
Utente Senior
 
Post: 190
Iscritto il: 07/11/07 18:31

Postdi piter123 » 08/11/07 13:32

grazie per i suggerimenti, sono riuscito nel mio intento

ora visto che ci sono vorrei chiederti un'altra cosa sempre sull'url in questione.

è possibile estrapolare su una cella il suo ultimo valore battuto quando lo attivo ?


e se invece volessi inserirlo dentro una form di vb magari usando il comando image come potrei fare



Grazie
piter123
Utente Senior
 
Post: 190
Iscritto il: 07/11/07 18:31

Postdi piter123 » 08/11/07 13:53

con i suggerimenti che mi hai dato vedo che la cella A1 si aggiorna in picture1, poi picture2 e così via ogni volta che richiamo il grafico e lo chiudo.
Siccome una volta inserito un refresh inrementerei sempre il contaotre del picture è possibile ogni volta che chiudo il grafico per poi ricaricalo emulando così il refresh anche azzerare il contatore picture??

Sempre Grazie
piter123
Utente Senior
 
Post: 190
Iscritto il: 07/11/07 18:31

Postdi Anthony47 » 08/11/07 20:00

Ok; sarebbe bello, in accodo con lo spirito di condivisione del forum, descrivere la soluzione che hai adottato.

Per quanto riguarda la possibilita’ di “estrapolare su una cella il suo ultimo valore battuto”, direi che non e’ possibile per excel leggere il disegno…
Immagino che il grafico rispecchi una tabella di dati che il sito dovrebbe mettere a disposizione, quindi questa parte la dovresti gestire con una query web; per l’ aggiornamento, o imposti la query perche’ aggiorni periodicamente i dati, oppure (mia scelta) inserisci nella macro che ti importa il grafico anche le istruzioni che ti eseguono la query web, che avrai “registrato”.

Per quanto riguarda il nome dell’ immagine, io non avrei dubbi sulla capacita’ di excel di assegnare un nome valido; ma se questo non ti tranquillizza, usa questa sequenza per rinominare l’ immagine:

Codice: Seleziona tutto
ActiveSheet.Pictures.Insert("http://ifbicpi.infobolsanet.com/graficos/IFBgetchart.dll?GetChart?MV=IVV1X&TR=1D&DIF=15&UN=DBPI01&FRECUENCY=M1&HEIGHT=847&WIDTH=868&CHARTYPE=5&TH=Y&DI=001&LAN=DE&RT=1&I2=").Select
Selection.Name = "pippo"              '<<< Il nome che vuoi sia assegnato
ActiveCell.Value = Selection.ShapeRange.Name


Nota l' istruzione aggiunta e il suo commento.
Prerequisito: il grafico precedente (che era stato rinominato “pippo”…) deve essere gia’ stato cancellato.

Infine il grafico nella form.
Premetto che non sono un appassionato delle form, in genere preferisco simulare l' effetto su un foglio di lavoro (magari normalmente nascosto).
Comunque credo che il file immagine debba essere presente sul disco e non su internet; se e’ questione di vita o di morte potresti provare a sviluppare una di queste ipotesi:
-ti fai un file .html che legge la pagina web che contiene il grafico, e le assegni una expiration di 60 (secondi)
-esegui il file .html, che quindi ogni 60 sec dovrebbe aggiornarsi
-sulla form inserisci il nome del file immagine cosi’ come viene registrato e aggiornato nei Temporary Internet File

Oppure:
-nella macro periodica, salvi il file come pagina web
-sulla form inserisci il nome del file immagine cosi’ come viene salvato sulla directory del salvataggio NomeFile_file

Ciao, facci sapere.
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Postdi piter123 » 09/11/07 19:05

mi scuso anticipatamente, ma la soluzione adottana non è ne più ne meno quella da Lei descritta in precedenza, nel senso che giusto per provare (il resto è ancora in fase di sviluppo per ciò che concerne l'auto refresh) sotto un commandbutton per abilitare il grafico ho inserito
Range("A1").select '<<< Inserire indirizzo
ActiveSheet.Pictures.Insert ("http://ifbicpi.infobolsanet.com/graficos/IFBgetchart.dll?GetChart?MV=IVV1X&TR=1D&DIF=15&UN=DBPI01&FRECUENCY=M1&HEIGHT=847&WIDTH=868&CHARTYPE=5&TH=Y&DI=001&LAN=DE&RT=1&I2=").Select

e sotto una'ltro commandbutton per disinserirlo ho scritto

Range("A1").select
ActiveSheet.Shapes(ActiveCell.Value).Delete

Appena avro sviluppato anche la parte di autorefresh in automatico sarà mia cura postare tutto il codice.

Nel frattempo ringrazio
piter123
Utente Senior
 
Post: 190
Iscritto il: 07/11/07 18:31

Postdi Anthony47 » 09/11/07 19:46

Ok, non avevo capito la precedente risposta...

E, abusando dei miei poteri di "Moderatore", cartellino giallo per l' uso del "lei".

Ciao, alla prossima.
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "Inserire web dentro excel":


Chi c’è in linea

Visitano il forum: Marius44 e 49 ospiti