patricktoulon
XLDnaute Barbatruc
petite découverte et astuce du jour
d'aussi loin que je me souvienne on m'a toujours dit que ce n’était pas possible
et pourtant SI!!
en fait c'est un bug qui n'a jamais été résolu
prenons par exemple une sub publique dans le module thisworkbook
public sub Mamacro()
msgbox "coucou je suis dans le module ThisworkBook"
End Sub
et je souhaiterais l'appeler de n'importe ou en différé
par exemple à la fin d'une fonction dans un module classe ( comme ça on complique bien les choses)
si je fais
evidemment ca ne fonctionnera pas
car dans ce cas présent on appelle la sub "Mamacro" comme si elle était dans un module standard
et si je précise le module
ça ne fonctionnera pas mieux
mais si on regarde bêtement le message d'erreur qui nous est renvoyé
on se rend compte que le chemin du classeur n'est pas bon
voici le message
mais kézako ça !!
mon classeur n'est pas dans mes documents
il y a donc bien un problème de reconnaissance du chemin du classeur
que cela Vous tienne
précisons le chemin un peu plus explicitement
et voila ca fonctionne
en espérant que ca vous serve
patrick
Comment utiliser application.ontime pour lancer une procédure
en différé qui n'est pas dans un module standard
d'aussi loin que je me souvienne on m'a toujours dit que ce n’était pas possible
et pourtant SI!!
en fait c'est un bug qui n'a jamais été résolu
prenons par exemple une sub publique dans le module thisworkbook
public sub Mamacro()
msgbox "coucou je suis dans le module ThisworkBook"
End Sub
et je souhaiterais l'appeler de n'importe ou en différé
par exemple à la fin d'une fonction dans un module classe ( comme ça on complique bien les choses)
si je fais
VB:
Application.OnTime Now + TimeValue("00:00:01"), "'" & ThisWorkbook.Name & "'!" & Mamacro
car dans ce cas présent on appelle la sub "Mamacro" comme si elle était dans un module standard
et si je précise le module
Code:
Application.OnTime Now + TimeValue("00:00:01"), "'" & ThisWorkbook.Name & "'!ThisworkBook.Mamacro"
mais si on regarde bêtement le message d'erreur qui nous est renvoyé
on se rend compte que le chemin du classeur n'est pas bon
voici le message
"Impossible d'executer la Macro "'C:\User\Moi\Documents\monclasseur.xlsm'ThisworkBook.Mamacro'.il est possible quelle ne soit pas
disponible dans ce classeur ou que toutes les macros soient déactivées
mais kézako ça !!
mon classeur n'est pas dans mes documents
il y a donc bien un problème de reconnaissance du chemin du classeur
que cela Vous tienne
précisons le chemin un peu plus explicitement
Code:
Application.OnTime Now + TimeValue("00:00:01"), "'" & ThisWorkbook.Path & "\" & ThisWorkbook.Name & "'!" & "Thisworkbook.Mamacro"
et voila ca fonctionne
ca fait plus de 20 ans que je fait du vb(a ) et j'ai toujours entendu et cru que ce n’était pas possible
alors qu'il suffisait de regarder attentivement le message pour comprendre
en espérant que ca vous serve
patrick
Dernière édition: