Bonjour,
J'ai encore une fois besoin de votre précieuse aide, j'ai fouillé sur le forum mais je n'ai pas trouvé de réponse à ma question
J'utilise une Private Sub 'Open' pour lancer une macro automatiquement à un horaire précis, voici le code ci-dessous
(Je ne peux pas utiliser le planificateur de tâche du PC puisque c'est un PC professionnel et que je n'ai pas les droits...)
Problème rencontré :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Private Sub Workbook_Open() Application.OnTime EarliestTime:=TimeValue("16:20:00"), Procedure:="Message_Temps", Schedule:=True Application.OnTime EarliestTime:=TimeValue("16:25:00"), Procedure:="Effacement", Schedule:=True End Sub
Le code ci-dessus se lance même quand le fichier Excel est fermé, cependant je souhaite qu'il ne se lance que si le classeur est ouvert
(Cela évitera que la macro se lance plusieurs fois si plusieurs utilisateurs ont ouvert le fichier dans la même journée)
Selon vous qu'elle est la meilleure méthode ?
-Annuler le 'Private Sub Open' à la fermeture du fichier ?
-Mettre une condition dans le 'Private Sub Open' pour qu'il ne se lance que si le fichier est ouvert ?
-Autre chose ?
Si besoin, voici les autres procédures :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Sub Message_Temps() MsgBox "Bonjour " & Application.UserName & " !... Les informations de l'onglet *Compil finale Collaborateurs* du fichier *Responsable COP* seront effacées à 16h25 pour être remplacées. Veuillez ne pas fermer le fichier." End Sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Sub Effacement() Workbooks("Responsable COP.xlsm").Activate Sheets("Compil finale Collaborateurs").Select Range("A2:AC2000").ClearContents MsgBox "Onglet *Compil finale Collaborateurs* effacée" ThisWorkbook.Close savechanges:=True End Sub
Merci beaucoup pour votre aide![]()
Partager