XL 2013 appel de procedure en différé

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

patricktoulon

XLDnaute Barbatruc
bonjour a tous
une fois n'est pas coutume c'est moi qui peine

j'ai une fonction dans la quelle a la fin j'essaie d'appeler en différé une sub publique du thisworkbook
est ce possible?

VB:
Application.OnTime Now + TimeValue("00:00:01"), "'" & ThisWorkbook.Name & "!" & "AddIndentEnvironnement"

merci pour les retours
 
Solution
Hello,
Peut-être qu'il manque une apostrophe?
Et ensuite, avec Application.Run?
VB:
Application.OnTime Now + TimeValue("00:00:01"), Application.Run "'" & ThisWorkbook.Name & "'!" & "AddIndentEnvironnement"
Non testé....
Hello,
Peut-être qu'il manque une apostrophe?
Et ensuite, avec Application.Run?
VB:
Application.OnTime Now + TimeValue("00:00:01"), Application.Run "'" & ThisWorkbook.Name & "'!" & "AddIndentEnvironnement"
Non testé....
 
re
bon ben en testouillant avec des msgbox on trouve
et du coup je viens de découvrir que Si c'est possible
il y avait deux problème dans ma ligne de rapel
1 ° effectivement @Cousinhub avait raison il manquait un apostrophe avant le "!"
2 ° aussi bizarre que cela puisse paraitre , même avec il ne me le trouve pas
j'ai le message gris me disant que qu'il ne trouve pas la sub
"C:User\patricktoulon\Documents\monclasseur.xlsm!ThisworkBook.mamacro
hors il n'est pas dans mes documents il est sur le bureau !!!!
du coup

VB:
Application.OnTime Now + TimeValue("00:00:01"), "'" & ThisWorkbook.Path & "\" & ThisWorkbook.Name & "'!" & "Thisworkbook.mamacro"

25 ans après je découvre que c'est possible

comme ça @Dranreb aura appris quelque chose aussi aujourd'hui
merci Tous les deux pour les retours
c'est bon pour moi
 
comme ça c'est pas perdu
 
Il ne dit pas que la fonction est invoquée dans une formule de cellule. Mais si c'est le cas il y a toujours un évènement Worksheet_Calculate qui survient derrière.
Et dans une Sub qui le prend en charge on peut épuiser une collection VBA dans laquelle la fonction pourrait avoir enregistré une consigne.
 
Bonjour Patrick, le forum,

A priori pas besoin d'utiliser le chemin du fichier, cette manière de faire est classique et va bien :
VB:
Function F()
Application.OnTime Now + TimeValue("00:00:01"), ThisWorkbook.CodeName & ".mamacro"
End Function

Sub Test()
Dim x
x = F 'appelle la fonction
End Sub
Il faut utiliser le CodeName, pour tester j'ai renommé "MonThisWorkbook" le ThisWorkbook.

A+
 

Pièces jointes

Bonjour
re visiblement ça se produit uniquement quand la fonction est dans une classe
@job75 ton idée n'est pas mauvaise d'utiliser le codeName
perso j'ai ma solution elle ne mange pas de pain
et surtout ou que soit cette ligne d'appel elle va taper au bon endroit
VB:
    Application.OnTime Now + 0.000005, "'" & ThisWorkbook.FullName & "'!" & ThisWorkbook.CodeName & ".AddIndentEnvironnement"
le string obtenu est le chemin complet et explicite de la sub
 
@Dranreb oui sauf que dans cette fonction je réécrit du code dans les modules
tu sais ce que ça veut dire !!????
ça veut dire qu'a partir du moment ou je réécrit du code toute les variables sont NAZES
problème dans cette classe je gère l'event des commandbarbutton avec des puclic withevents
puisque c'est un bouton supplémentaire dans la" commandbars("tools") de VBE
si c'est variables sont détruites le truc marche qu'une première fois puis bye bye!!
donc mon idée et de différé la réinitialisation de ces variables automatiquement
et ça fonctionne
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour