sono nuovo del forum. Sono comunque molto interessato ai vari temi oggetto di discussione e, pertanto, mi leggerete spesso
Dunque, il mio problema riguarda l'importazione di dati DDE. Mi sono letto tutto quello che si è scritto, in merito, sia qui che altrove. Credo di aver risolto del tutto il mio problema, tranne una piccola cosa che proprio non riesco a spiegarmi.
Questa è la situazione:
nel foglio1 cella A1 ho il collegamento DDE
nel foglio1 cella C1 ho una stringa che può essere TRUE oppure FALSE
nel modulo 1 ho le routine più avanti indicate. La logica di funzionamento è (o almeno, dovrebbe essere) la seguente.
La routine auto_open definisce la cella c1 del foglio1 come variabile booleana. Se questa è vera, ed in concomitanza con l'acquisizione del successiovo dato DDE, fa partire la macro1 - che visualizza il messaggio 'La cella DDE è cambiata' - altrimenti richiama la routine test3 - che visualizza il messaggio 'premuto il tasto stop'.
Il problema è questo. Quando apro la cartella di lavoro che contiene il foglio1 il sistema visualizza il messaggio relativo al valore che la variabile booleana aveva nel momento in cui excel è stato chiuso l'ultima volta. E da quel momento non sente più il cambiamento della cella c1. Lo sentirà nuovamente alla chiusura di excel e successiva riapertura.
Chi mi può aiutare?
Grazie e a buon rendere.
- Codice: Seleziona tutto
Sub auto_open()
Dim bRunNow As Boolean
With ActiveWorkbook
bRunNow = .Worksheets("Foglio1").Range("c1").Value
If bRunNow Then
.SetLinkOnData "IWDDE|STOCK_PRICE!'229947?contractPrice'", "macro1"
Else
.SetLinkOnData "IWDDE|STOCK_PRICE!'229947?contractPrice'", "Test3"
End If
End With
End Sub
- Codice: Seleziona tutto
Sub Test3()
MsgBox "premuto il tasto stop!", vbOKOnly, "Messaggio"
End Sub
- Codice: Seleziona tutto
Sub Macro1()
MsgBox "La cella DDE è cambiata", vbOKOnly, "Messaggio"
End Sub