J'ai crée une macro me permettant de créer un effacement de données au bout de 2 minutes.
dans cette macro j'appelle une autre macro qui efface les données dans une feuille.
Code:
Private Sub tempo()
Application.OnTime Now + TimeValue("00:02:00"), "effacer"
End Sub
et
Code:
Private Sub effacer()
ThisWorkbook.Sheets("agent").Unprotect password:="dede"
Range("J23") = ""
Range("L23") = ""
Range("N23") = ""
Rows("200") = ""
ThisWorkbook.Sheets("agent").Protect password:="dede"
MsgBox " Temps d'inactitvité dépassé, vos données ont étés effacées"
Exit Sub
End Sub
Au bout de deux minutes j'ai un message me disant que la macro effacer n'a pas été trouvé dans le classeur ou que les macros ne sont pas activées alors que les deux macros sont dans le module de la dite page ?
Merci à vous par avance pour m'aider à comprendre pourquoi
Re : Une macro introuvable lors de son exécution depuis une autre macro
Merci à toi,
Ton fichier fonctionne parfaitement mais je ne comprends toujours pas pourquoi ma macro reste introuvable !
et j'ai bien aussi Option Explicit en haut de la page du module de l'userform qui déclenche la macro
j'ai un message me disant que la macro effacer n'a pas été trouvé dans le classeur ou que les macros ne sont pas activées alors que les deux macros sont dans le module de la dite page ?
Toujours le même problème : où écrire les macros ?
Si… ta macro d’appel est dans la page de code de la feuille Agent, l’autre
VB:
Sub Effacer()
Sheets("Agent").Unprotect "dede"
Range("J23,L23,N23") = ""
Rows(20) = ""
Sheets("Agent").Protect "dede"
MsgBox " Temps d'inactivité dépassé, vos données ont été effacées", 0, "Message"
End Sub
doit-être dans la page d’un module standard !
Tu peux mettre les 2 macros dans un Module standard comme l’a fait JCGL mais là encore il faudra faire attention de quelle feuille est lancée la première.
Si… ta macro d’appel n’est pas dans la page de code de la feuille, l’autre doit-être dans la page d’un module standard sous cette forme :
Code:
Sub Effacer()
With Sheets("Agent")
.Unprotect "dede"
.Range("J23,L23,N23") = ""
.Rows(20) = ""
.Protect "dede"
End With
MsgBox " Temps d'inactivité dépassé, vos données ont été effacées", 0, "Message"
End Sub