XL 2016 VBA - Application.OnTime plante dans un UserForm bien que la fonction soit publique

Dudu2

XLDnaute Barbatruc
Bonjour,

Je n'arrive pas à gérer un Application.Ontime dans un UserForm. Je ne veux pas passer par un Module écrit ou généré.
Excel ne trouve pas la fonction à activer à échéance bien que publique et complètement qualifiée !

Alors ce n'est peut-être simplement pas possible avec Appliction.OnTime. auquel cas il faudra trouver une autre méthode (Timer @patricktoulon sur CommandBar, autre ?)
 

Pièces jointes

  • Classeur1.xlsm
    25.1 KB · Affichages: 5

Deadpool_CC

XLDnaute Accro
Bonjour,
jette un œil sur :

c'est pas Application.ontime qui bloque ... c'est certainemet ta fonction/procédure que tu souhaites lancé "l'heure" doit elle être dans un module. :)
 

Dudu2

XLDnaute Barbatruc
Bonjour @Deadpool_CC, @Dranreb
Procedure ne doit prendre aucun argument et ne peut pas être déclarée dans une classe ou un formulaire personnalisé.
Et oui, merci ! Je me rappelle maintenant, j'avais déjà été confronté au problème.

En fait un argument peut quand même être précisé à condition de tout encadrer d'apostrophes.
@Dranreb, ok pour les arguments. Bon à savoir !
 

Dudu2

XLDnaute Barbatruc
@Dranreb, merci pour l'exemple. Cependant, je n'ai pas compris le principe de fonctionnement.
Il faudrait au moins que tu le décrives dans les grandes lignes.

Entre temps j'ai essayé une alternative.

Edit: fichier modifié un peu plus homogène sur les Save / Restore des valeurs Application.
 

Pièces jointes

  • Timer en UserForm.xlsm
    27.9 KB · Affichages: 4
Dernière édition:

Dudu2

XLDnaute Barbatruc
Désolé @Dranreb, je suis dans un code de fonction où j'ai utilisé l'alternative illustrée au Post #9, et je n'ai eu le temps de me plonger dans ton code.
Si tu as des précisions je suis preneur car je n'ai pas compris le système de temporisation que tu utilises malgré une revue rapide (trop ?) de tes commentaires. Juste sur le principe et les API utilisées.
 

Dranreb

XLDnaute Barbatruc
Les API n'ont pas de rapport avec l'objet Planification.
Il y a QueryPerformanceCounter qui renvoie sur 8 octets la valeur d'un compteur système très régulier, avançant très vite, et QueryPerformanceFrequency qui indique de combien il avance en une seconde. Ça permet des mesures de durées très précises, à la nanoseconde près.
Qu'est ce que tu ne comprend pas dans l'utilisation d'un objet Planification ?
 

Discussions similaires

Statistiques des forums

Discussions
312 177
Messages
2 085 977
Membres
103 078
dernier inscrit
diomy