Bonjour à tous,
Contexte,
Tout les matins j'ouvre un fichier Excel.
Problème
Je souhaite qu'à son ouverture Excel lance à une heure donnée une macro de mise à jour de date.
Pour cela je commence par introduire une Private sub:
Private Sub Worbook_Open()
Application.OnTime TimeValue("09:00:00"), "Date_New", , True
End Sub
Ma macro est la suivante:
Sub Date_New()
If Weekday(Now(), vbMonday) < 6 Then
Beep
If MsgBox("Souhaitez-vous ajoutez la date du jour:" & Chr(10) & _
"'' " & Format(Now(), "dddd dd/mm/yyyy") & " ''" & " à l'historique des dates ?", _
vbYesNo + vbQuestion + vbDefaultButton1 + vbSystemModal, "Ajout date du jour") = vbYes Then
Windows("test1.xlsm").Activate
Sheets("Feuil1").Select
Range("c55").Select
Selection.ClearContents
Range("c55") = Application.WorksheetFunction.RoundDown(Now(), 0)
End If
End If
Application.OnTime TimeValue("09:00:00"), "Date_New", , True
End Sub
A la fin de la macro je lance la fonction "Application.OnTime" afin de relancer la macro pour le lendemain, au cas ou mon fichier resterait ouvert.
Enfin lorsque je ferme mon fichier j’introduis une seconde Private Sub afin d'arretter le timer:
Private Sub Workbook_beforeclose (Cancel As Boolean)
Application.OnTime TimeValue("09:00:00"), "Date_New", , False
End Sub
Question
Je suis tout à fait novice en VBA, et je souhaiterai savoir si les pro du VBA qui soutiennent courageusement ce forum pourraient me donner leur avis sur ma façon de procéder.
D'avance merci pour vos contributions.
Cordialement