Programmazione Excel finestra mobile Excel (1 Viewer)

iulius

Forumer storico
Qualche tempo fa' avevo fatto questo foglio, per scaricare l'ultimo prezzo e lo storico di un singolo titolo, dato il suo ticker Yahoo.
Il codice VBA era abbastanza commentato, non dovrebbe essere difficile adattarlo alle tue esigenze...

N.B.: l'ho sperimentato solo sotto Win XP e Excel 2003, per il funzionamento sotto Mac/BootCamp... nin zò ! :D

Ti ringrazio molto. Ciao.:)
 

iulius

Forumer storico
Ti ringrazio molto. Ciao.:)

Funziona con BootCamp (os. Mac), perfettamente!
Ed ora, se non ti "rompo" troppo, come posso fare per inserire vari pulsanti
ognuno dei quali collegato stabilmente ad un titolo, p.e. Fiat, Generali, Impregilo, ecc.
Lo scopo principale sarebbe quello di disporre delle quotazioni del giorno;
se poi c' è anche la possibilità dello storico, tanto meglio.

Scusami per la mia ingordigia.:)
 

IceCube

Nuovo forumer
Funziona con BootCamp (os. Mac), perfettamente!
Ed ora, se non ti "rompo" troppo, come posso fare per inserire vari pulsanti
ognuno dei quali collegato stabilmente ad un titolo, p.e. Fiat, Generali, Impregilo, ecc.
Lo scopo principale sarebbe quello di disporre delle quotazioni del giorno;
se poi c' è anche la possibilità dello storico, tanto meglio.

Scusami per la mia ingordigia.:)

Lasciando perdere lo storico, per semplicita', ho fatto una piccola modifica al file: ora e' sufficiente inserire il ticker in colonna A, poi facendo doppio click sulla riga appare l'ultimo prezzo da Yahoo.

Certo che sarebbe meglio avere anche una minima conoscenza dell'ambiente VBA, per poter modificare il codice ed adattarlo alle proprie esigenze...

CIAO !



P.S.: piccola modifica: ora cliccando sulla riga 1 ("Ticker") si aggiornano TUTTI i prezzi in sequenza...
 

Allegati

  • Quotazioni Yahoo.xls
    31 KB · Visite: 311
Ultima modifica:

iulius

Forumer storico
Certo che sarebbe meglio avere anche una minima conoscenza dell'ambiente VBA, per poter modificare il codice ed adattarlo alle proprie esigenze...

CIAO !

Intanto ti ringrazio moltissimo. Circa il VBA, potrei anche arrivarci a concludere qualcosa osservando il lavoro di un esperto.
Ciao.

Qualche problema. Col doppio clic sulla riga non succede nulla.
Ciao.

Rettifico: col doppio clic sul titolo dopo diversi secondi appare la finestra "Dati non trovati, verificare ticker"

Annullo tutto. Forse è un problema col server. Ti saprò dire. Ciao.
 
Ultima modifica:

f4f

翠鸟科
Qualche tempo fa' avevo fatto questo foglio, per scaricare l'ultimo prezzo e lo storico di un singolo titolo, dato il suo ticker Yahoo.
Il codice VBA era abbastanza commentato, non dovrebbe essere difficile adattarlo alle tue esigenze...

N.B.: l'ho sperimentato solo sotto Win XP e Excel 2003, per il funzionamento sotto Mac/BootCamp... nin zò ! :D


grazie :)
 

truppa

Nuovo forumer
Beh, ma vuoi postare qualche linea di codice ? :mad: :D

Ok, non vorrai mica vergognartene, no ? ...hai già detto che sei alle prime armi col VBA, come si puo' dire cosa c'e' che non va' se continui a NON mostrarlo ?

Oppure, se preferisci, posta un foglio Excel con dei dati e vediamo come calcoli le medie mobili... ti assicuro che NON sono necessarie ORE di elaborazione ! :eek: (a meno che non operi con MILIARDI di dati, e vuoi calcolare tutte le medie mobili di periodo da 10 milioni a 100 milioni ! :titanic:)


Gulp, spero che non ti sia arrabbiato! Come avevo scritto non ero a casa. Ero qui: (vedi foto).
Ad ogni modo, più che un listato io avevo fatto solo delle prove, scrivendo semplici istruzioni e integrandole con Excel. Probabilmente le ho cancellate. Dovrò cercarle e se proprio le vuoi vedere – sic- riscriverle. Qualcosa tipo:

For a = 51 To 200
For b = 5 To 50 Step 5
Cells(a, 6) = b

E cioè: partendo dalla riga 51 e finendo alla riga 200, scrivi nella cella (A,6) un valore che va da 5 a 50, con step di 5. A questo punto, con una istruzione tipo:

=media(indiretto(concatena("e"&rif.riga()-F51)):E51)

cercavo di calcolare la media ottenuta di volta in volta con i nuovi valori, scrivendo i risultati nelle celle adiacenti. A questo punto sceglievo per “domani” la media che aveva performato meglio oggi (o, meglio, negli ultimi X giorni).
Per evitare fraintendimenti ribadisco ancora una volta che condivido le perplessità espresse da F4F riguardo la media (esperimento già tentato). Mi interesserebbe arrivare ad una soluzione riguardo la costruzione di una finestra mobile per tentare altre strade.
Come avevo scritto in precedenza, la difficoltà maggiore stava nel tempo impiegato per il calcolo. Ho fatto una rapida ricerca su web e ho scoperto che posso risolvere scegliendo Calcolo Manuale da strumenti->opzioni.
Comunque sia, grazie ugualmente e buona giornata.
 

Allegati

  • IMGP0096.JPG
    IMGP0096.JPG
    54,7 KB · Visite: 537

IceCube

Nuovo forumer
Gulp, spero che non ti sia arrabbiato! Come avevo scritto non ero a casa. Ero qui: (vedi foto).
Ad ogni modo, più che un listato io avevo fatto solo delle prove, scrivendo semplici istruzioni e integrandole con Excel. Probabilmente le ho cancellate. Dovrò cercarle e se proprio le vuoi vedere – sic- riscriverle. Qualcosa tipo:

For a = 51 To 200
For b = 5 To 50 Step 5
Cells(a, 6) = b

E cioè: partendo dalla riga 51 e finendo alla riga 200, scrivi nella cella (A,6) un valore che va da 5 a 50, con step di 5. A questo punto, con una istruzione tipo:

=media(indiretto(concatena("e"&rif.riga()-F51)):E51)

cercavo di calcolare la media ottenuta di volta in volta con i nuovi valori, scrivendo i risultati nelle celle adiacenti. A questo punto sceglievo per “domani” la media che aveva performato meglio oggi (o, meglio, negli ultimi X giorni).
Per evitare fraintendimenti ribadisco ancora una volta che condivido le perplessità espresse da F4F riguardo la media (esperimento già tentato). Mi interesserebbe arrivare ad una soluzione riguardo la costruzione di una finestra mobile per tentare altre strade.
Come avevo scritto in precedenza, la difficoltà maggiore stava nel tempo impiegato per il calcolo. Ho fatto una rapida ricerca su web e ho scoperto che posso risolvere scegliendo Calcolo Manuale da strumenti->opzioni.
Comunque sia, grazie ugualmente e buona giornata.

Ciao, Truppa, bentornato !

Ho visto che hai risolto impostando il ricalcolo manuale, comunque puo' essere utile capire il motivo del rallentamento che ottenevi, magari per evitarlo in altre occasioni...

Leggendo quelle famose 3 righe (hai visto che non era uno sforzo inutile ? :rolleyes:), probabilmente il problema era il seguente:
- quando usi una funzione Excel calcolata su un INSIEME di celle (come avviene per la funz. "MEDIA"), QUALSIASI variazione su anche UNA SOLA di quelle celle forza il ricalcolo automatico della funzione (in questo caso la media) sull'INTERO range di valori.

Questo vuol dire che se, per es., vuoi calcolare la media di 1000 valori da te calcolati, e metti in un ciclo la modifica delle 1000 celle, Excel calcola 1000 volte la media, proprio dopo ciascuna modifica di ciascuna cella !!!
Il fatto e' tu non vuoi calcolare 1000 volte la media, ma calcolarla SOLO ALLA FINE !

Ci sono varie soluzioni:

- forzare Excel al ricalcolo "a richiesta" anziche' automatico, come hai fatto tu in questo caso, anche se questo si applica all'intero foglio (e non sempre e' l'ideale);

- applicare quella soluzione SOLO su una porzione di codice, premettendo (al ciclo for) un'istruzione Application.Calculation = xlCalculationManual, e alla fine (dopo il next) rimettendo tutto a posto con Application.Calculation =xlCalculationAutomatic

- in caso di una funzione semplice come la media, calcolandola direttamente dal VBA e mettendo il risultato nella cella desiderata (anziche' usare la funzione MEDIA)

Spero possa esserti utile, CIAO !!!
 

truppa

Nuovo forumer
Perfetto..! :)
Avevo addirittura trovato quelle istruzioni durante le mie ricerche in rete, ma con la fretta di risolvere e d testare la soluzione "forzata", mi era sfuggita la loro importanza. Grazie del prezioso suggerimento. Mi piacerebbe conoscere Vba quanto lo conosci tu (a dire la verità mi basterebbe anche meno) e prima o poi dovrò fare un corso o acquistare almeno un manuale serio. Quello che ho è incompleto e non ha un filo logico: imparo molto di più in rete, rompendo le scatole nei forum alle persone disponibili (sic!).
Continuo gli esperimenti.
 

IceCube

Nuovo forumer
Perfetto..! :)
Avevo addirittura trovato quelle istruzioni durante le mie ricerche in rete, ma con la fretta di risolvere e d testare la soluzione "forzata", mi era sfuggita la loro importanza. Grazie del prezioso suggerimento. Mi piacerebbe conoscere Vba quanto lo conosci tu (a dire la verità mi basterebbe anche meno) e prima o poi dovrò fare un corso o acquistare almeno un manuale serio. Quello che ho è incompleto e non ha un filo logico: imparo molto di più in rete, rompendo le scatole nei forum alle persone disponibili (sic!).
Continuo gli esperimenti.

:up: Ok, quando posso... sai dove trovarmi !
 

cammello

Forumer storico
due cose:
- date un'occhiata al sito gummy stuff, ne trovate di tutti i colori (cosi ice può prendersi una pausa :) )
- truppa, perché non usi prorealtime per fare queste simulazioni? è un attimo più semplice e versatile

C
 

Users who are viewing this thread

Alto