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 ?)
Ok mais ton objet Planification il fait référence à un Application.Ontime qui est dans un Module.
Donc rien de nouveau à l'ouest. Dans mon UserForm je ne veux pas faire référence à un Module pour le Timer.
Je pensais que c'était ces fonctions QueryPerformanceXXX qui pouvaient jouer ce rôle. Donc non, elles y sont étrangères.
On n'y fait pas référence dans l'UserForm, c'est la méthode PlanifierDans de l'objet Planification qui se débrouille toute seule. Il déclenche simplement un évènement Échoit pour l'Userform le moment venu.
Certes, mais le mécanisme que j'avais également utilisé dans une version similaire a besoin du Module pour fonctionner. Tout mon problème a été de me débarrasser de ce module pour n'avoir qu'à utiliser uniquement un UserForm qui contient tout le code, y compris la fonction Public en charge de son affichage, y compris le mécanisme de timer. Le UserForm est complètement autonome. Un seul objet à importer dans le code.
Je vais probablement publier la ressource correspondante sous peu.
Le fichier à télécharger contient: Le UserForm MsgBoxPerso à importer dans le projet VBA pour utiliser le MsgBoxPerso Le Module_Test qui donne quelques exemples d'utilisation L'appel de la fonction: Dim Retour As Variant ' Retour =...
www.excel-downloads.com
Contrairement à ce type de MsgBoxPerso où un Module créé dynamiquement un UserForm ce qui demande d'autoriser l'accès au projet VBA.
Ça ne change rien au fait qu'une méthode ne peut être invoquée ainsi, mais une procédure d'un module standard avec un argument, si.
En fait un argument peut quand même être précisé à condition de tout encadrer d'apostrophes.
J'ai essayé toutes les syntaxes possibles et imaginables (doubles-cotes, cotes, virgule, pas virgule, etc...) et je n'arrive pas à passer argument sur un Application.OnTime Now, "Fonction" + Argument ???
Bonjour.
On a déjà dit que c'était définitivement inapplicable aux méthodes. Pareil pour un Timer par API.
Il faut donc obligatoirement passer par un module standard. C'est pourquoi j'utilise des modules standard effecteurs XPlanificateur et XRythmeur assez courts, ne nécessitant aucune maintenance et non utilisés par le programmeur d'application, vu que seuls s'en servent mes modules de classe Planification et Rythmeur d'emploi ultra simple.
Pour ce qui est de la syntaxe dans un module standard, j'ai ceci dans la Public Function IdtPlanificationLancée(ByVal Source As Planification) As Long du module XPlanificateur :
Sub a()
Dim i As Integer
Dim j As Integer
i = 12
j = 24
Application.OnTime Now, "'b " & i & ", " & j & "'"
End Sub
Sub b(i As Integer, j As Integer)
MsgBox i & " " & j
End Sub