Newsgroup: it.economia.borsa.trading-online
Titolo: aiuto per DDE excel

Dopo varie vicissitudini ho finalmente installato sul mio pc la scheda tv.
Mi sono letto i vari 3d sull'argomento DDE e devo veramente ringraziare per
la disponibilità, soprattutto Trilussa. Pur non avendo mai postato per un
problema specifico sono riuscito a fare alcune cose carine con un foglio
excel di prova. Poi però mi sono bloccato di fronte a un problemino. Sono
arrivato al punto di isolare il prezzo di un titolo in una cella excel. Vedo
il campo che si aggiorna con frequenza regolare. Mi piacerebbe, ogni volta
che si aggiorna il prezzo, riportare il valore in una nuova cella.
Faccio un esempio.
Ho il prezzo del titolo in questione in cella A1.
Si aggiorna il prezzo -> ll nuovo valore finisce in B1
Si aggiorna il prezzo -> ll nuovo valore finisce in B2
Si aggiorna il prezzo -> ll nuovo valore finisce in B3
ecc...
Tutto questo per avere a fine giornata una colonna con tutti i prezzi del
titolo che mi interessa.
Come si potrebbe fare?
Se poi si potesse impostare anche la frequenza di aggiornamento desiderata
(per es. ogni minuto invece dei 20 sec del televideo) sarebbe il massimo.
Grazie
Ciao

 Ciao
Tu vuoi registrare dei dati intraday e vuoi farlo su un foglio excel per
usarli ed elaborarli a piacere.
Sotto ti posto una macro utile per registrare una riga di dati in una riga
sotto con la frequenza che vuoi.
Devo osservare che su questa riga puoi riportare qualsiasi dato, sia che
provega dal televideo, sia da un Tool dde, query web, QT, o valori
elaborati da te sui dati in rt e costruire i relativi andamenti grafici
che ti interessano.
Tieni conto che io la uso spesso per costruire diagrammi particolari.
Ovviamente puoi fare anche più fogli con nomi diversi.
Se hai difficoltà ti invio dei fogli adattati secondo le indicazioni che
mi darai di ciò che ti serve.
Sai che nel Ng abbiamo un esperto che in caso di necessità non ci lascia
per strada?-))
La macro:
Public EseguiAlle As Double
Public Const cIntervalloSecondi = 60  'secondi '
 
Public Const cEseguiSub = "SalvaDati"
--------------------------------------------------------------
Sub StartTimer()
 Worksheets("DB Intraday").Range("Spia").Interior.ColorIndex = 3
 Range("C1").Select
 Range("C1") = "ATTIVO"
EseguiAlle = Now + TimeSerial(0, 0, cIntervalloSecondi)
Application.OnTime earliesttime:=EseguiAlle, procedure:=cEseguiSub, _
     schedule:=True
End Sub
---------------------------------------------------------------
Private Sub SalvaDati()
 
    Workbooks("DAYt3.xls").Worksheets("DB Intraday").Activate
    Range("$22:$22").Select
    Selection.Insert Shift:=xlDown
    Range("$21:$21").Select
    Selection.Copy
    Range("A22").Select
    Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone,
SkipBlanks:= _
        False, Transpose:=False
    Application.CutCopyMode = False
 
 
    Call StartTimer
 
End Sub
--------------------------------------------------------------
Sub StopTimer()
   On Error Resume Next  'Rimanda l'intercettazione degli errori'
    Worksheets("DB Intraday").Range("Spia").Interior.ColorIndex = 4
    Range("C1").Select
    Range("C1") = "FERMO"
     Application.OnTime earliesttime:=EseguiAlle, _
       procedure:=cEseguiSub, schedule:=False
End Sub
------------------------------------------------------------------
Sub Auto_Close()
    Call StopTimer
End Sub
==============
Spiegazione
---Const cIntervalloSecondi = 60  'secondi '
Puoi cambiare il numero di secondi a piacere.
---Worksheets("DB Intraday").Range("Spia").Interior.ColorIndex = 3
--- Range("C1").Select
--- Range("C1") = "ATTIVO"
Il foglio si chiama -DB Intraday - Devi nominare la cella CI -"Spia"-, e
quando la registrazione è in funzione te la colora di verde -ColorIndex =
3-
----WorkbooksWorkbooks("DAYt3.xls").Worksheets("DB Intraday").Activate
xls").Worksheets("DB Intraday").Activate
La cartella excel si chiama ("DAYt3.xls"), difatti la uso per registrare
dati del tool T3..
nel foglio DB Intraday sposta la riga 22 in giù di un posto e copia la
riga 21nella 22
Ovviamente puoi assegnare la riga che vuoi tu.
---Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=
_
        False, Transpose:=False
cioè lo fa con COPIA INCOLLA SPECIALE VALORE.
---Range("Spia").Interior.ColorIndex = 4
    Range("C1").Select Range("C1") = "FERMO"
In caso di stop il colore di spia diventa rosso.
------------Sub StartTimer()
------------Sub StopTimer()
a queste due macro devi collegare due bottonì per avviare on interrompere
la registrazione.
Per questi lavori ti conviene lasciare a parte la cartella excel in modo
che quando registri, se la metti ad icona non ti rompe le ....utility
Ciao
Trilussa
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 la registrazione.
=============================
------------Sub StartTimer()
------------Sub Auto_Close()
a queste due macro devi collegare due bottonì per avviare on interrompere
la registrazione.
Il procedimento: Visualizza\Barra degli strumenti\Moduli (scegli un
bottone e piazzalo sul foglio). Poi fai tasto destro sul Bottone-modulo e
Assegna Macro start ad uno e stop all'altro.
Nota:
In - Private Sub SalvaDati()- Call StartTimer riavvia il timer
In - Sub StopTimer() - Arresta il timer in caso di errore o se richiamata
da - Sub Auto_Close() -
ciao


 sotto con la frequenza che vuoi.
Qui ho bisogno di un po' di tempo. Ho fatto qualche macro in passato ma sono
proprio un principiante. Più che altro nella guida di visual basic di excel
non sono spiegate le istruzioni. Dove posso trovare maggiori informazioni?
Intanto provo a venirne a capo, poi ti faccio domande più mirate.
Per ora grazie, gentilissimo come sempre
Ciao
Daniele

 Daniele
Ciao Daniele. Scusa, faccio un giro velocissimo nel www per dire che,
causa urgente ricovero per qualche giorno non sarò in grado di leggere o
scerivere.


 causa urgente ricovero
auguriiii
ciao
gus

 scerivere.
Ti aspetto. Nel frattempo buona fortuna.
Ciao
Daniele

 scerivere.
ciao, in bocca al lupo

 Daniele
Se la funzione del foglio turko borsa-txt-dde.zip (che potresti
scaricare... 
http://myport.virtualave.net/
http://myport.virtualave.net/Archive.htm
  ) 
ti va bene, e tenendo conto che č anche belle e impostata compresa una
pregevole formattazione condizionale
Nella colonna G del file 
e che trovi la seguente funzione nel modulo 1
Function Alarm(v, f)
If (v > 0 And f = "A") Then
Beep
End If
If (v = 1) Then
Alarm = "SAT"
ElseIf (v = 3) Then Alarm = "AL"
ElseIf (v = 2) Then Alarm = "STOP"
Else
Alarm = "BEKLE"
End If
End Function
Scusa la confusione "fummo-grammaticale"


 pregevole formattazione condizionale
Io sono per la personalizzazione :-) però in quella funzione ci sono gli
spunti che mi servivano. Adesso provo a capovolgere il mio foglio e a
inserirci la funzione.
Se mi intoppo premo ancora F1 ;-)
Grazie ancora
Daniele

Intanto provo a venirne a capo, poi ti faccio domande più mirate.
Io di VB non so un kayser ma un esperto si trova sempre...-))
Devo chiudere perchè mi viene voglia di fumare....  a presto


 Devo chiudere perchč mi viene voglia di fumare....  a presto
Spero che tu non abbia ceduto al richiamo...
E' dura ma... tieni duro.
Ciao
Daniele