fredtes35
Messages postés3Date d'inscriptionvendredi 3 août 2007StatutMembreDernière intervention 6 août 2007
-
3 août 2007 à 09:59
fredtes35
Messages postés3Date d'inscriptionvendredi 3 août 2007StatutMembreDernière intervention 6 août 2007
-
6 août 2007 à 14:51
Bonjour,
Je débute en vba. Je voudrais rafraîchir toutes les secondes une valeur
située dans un TextBox d'une Userform. Pour cela j'utilise la méthode
OnTime par exemple, ce qui fonctionne bien. Le problème que je
rencontre est que dans la fonction executée lorsque la tempo est
écoulée je ne peux pas faire appel à une fonction définie dans mon
Userform qui met à jour l'affichage (fonction inconnue...)
Je suppose que ça vient du fait que mon code pour gérer la tempo se trouve dans un module...
<!-- BEGIN TEMPLATE: bbcode_code -->
Code :
Dim Lheure As Double
Sub macro_RS232()
EndSub
Sub ExecutionTimer()
'code à exécuter à la fin de chaque Interval secondes
Call SetTemperatureIndicator
Sub LancerTimer(NbS AsInteger)
'L'application ExecutionTimer se lancera toutes les 0 heure, 0 minute et Interval seconde
Interval = NbS
Application.OnTime Now + TimeSerial(0, 0, 1), "ExecutionTimer"
EndSub
Sub ArretTimer()
OnErrorResumeNext
Application.OnTime Lheure, "ExecutionTimer", , False
EndSub
L'appel de LancerTimer se trouve dans le code associé à ma feuille Excel
SetTemperatureIndicator se trouve dans mon Userform
Le code visible sur l'écran est dans mon module
Le message d'erreur est :
Erreur de compilation
<!-- / message --><!-- attachments -->
Sub ou Function indéfinie
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 3 août 2007 à 19:39
Salut
Si le code que tu veux appeler se trouve dans un module, il te suffit de déclarer cette Sub en Public :
Public Sub LancerTimer(NbS AsInteger)
Elle deviendra ainsi accessible de n'importe quel endroit dans ton projet.
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)