Rafraîchissement périodique d'un textbox

Résolu
fredtes35 Messages postés 3 Date d'inscription vendredi 3 août 2007 Statut Membre Dernière intervention 6 août 2007 - 3 août 2007 à 09:59
fredtes35 Messages postés 3 Date d'inscription vendredi 3 août 2007 Statut Membre Derniè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
 
Lheure = Now + TimeSerial(0, 0, 1)
Application.OnTime Lheure, "ExecutionTimer"
EndSub
 
 
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

Merci pour votre aide...

4 réponses

cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
6 août 2007 à 11:31
Essaie en spécifiant le nom du UserForm
NomDuUserform.SetTemperatureIndicator

ou déplace ta procédure dans le module.

MPi
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
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)
0
fredtes35 Messages postés 3 Date d'inscription vendredi 3 août 2007 Statut Membre Dernière intervention 6 août 2007
6 août 2007 à 10:22
Ce n'est pas la fonction LancerTimer qui pose problème mais la fonction SetTemperatureIndicator. Elle est déjà déclarée en public dans mon Userform...
0
fredtes35 Messages postés 3 Date d'inscription vendredi 3 août 2007 Statut Membre Dernière intervention 6 août 2007
6 août 2007 à 14:51
Merci MPi ça fonctionne maintenant
0
Rejoignez-nous