Option Explicit
Public Moment_du_lancement As Date
Sub Test()
Moment_du_lancement = Now + TimeValue("72:00:00") 'Dans 3 jours par exemple
Application.OnTime Moment_du_lancement , "Ouverture_du_fichier" 'Lance la tâche
End Sub
Sub Ouverture_du_fichier()
'On va s'assurer que le fichier Excel n'est pas déjà ouvert.
Dim fichierOUVERT As String
Dim Le_FichierOUVERT, Le_FICHIER
Dim Le_Nom_Complet_du_Fichier as String
Le_Nom_Complet_du_Fichier = "C:\Documents and Settings\Etienne\Bureau\Test.xls"
fichierOUVERT = "non"
For Each Le_FichierOUVERT In Application.Workbooks 'On parcours chacun des classeurs Excel ouverts.
If Le_FichierOUVERT.Name = Le_Nom Then 'Vérifie s'il n'est pas déjà ouvert.
fichierOUVERT = "oui" 'Switch
Exit For 'Sort de la boucle
End If
Next Le_FichierOUVERT 'Passe au prochain fichier
If fichierOUVERT <> "oui" Then 'Une fois la boucle complétée, si la Switch n'a pas été tournée à oui, alors ouvre le fichier
Set Le_FICHIER = Workbooks.Open(Filename:=Le_Nom_Complet_du_Fichier, UpdateLinks:=0)
End If
End Sub