Exécution macro à heure fixe, fichier fermé?

satel -  
 satel -
Bonjour,

Je suis débutante en VB et je cherche à créer une macro qui me permettrait de mettre à jour les liens entre 2 fichiers Excel à heure fixe.

En fait, le problème de la mise à jour des liens est qu'elle est relativement longue (~5 minutes) et il faudrait donc pouvoir la faire lorsque l'ordinateur n'est plus utilisé, sachant qu'il reste en veille, mais que les 2 fichiers ne sont pas forcément ouverts!

Est-ce qu'une macro permettant d'effectuer une telle action avec un fichier fermé existe ?

Pour l'instant, j'utilise les macros suivantes (en supposant que 12h après l'ouverture du fichier, l'utilisateur sera déjà parti du bureau ...) :

Public Sub Workbook_Open()
Call AutoOpen
End Sub

Public Sub AutoOpen()
Application.OnTime Now + TimeValue("12:00:00"), "autosave"
End Sub

Mais elles ne marchent que si le fichier reste ouvert ...

Merci pour votre aide !
A voir également:

3 réponses

satel
 
J'ai oublié de préciser que je travaille sous VB6 ...
0
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
bonjour,
le problème de la mise à jour des liens est qu'elle est relativement longue (~5 minutes)

c'est là apparemment, qu'il faut traiter le problème et non dans une mise à jour pendant la nuit (T'es s^re que ton ordi restera sous tension?)

en quoi consiste ces mises à jour (valeurs de cellules, par ex.) ? et combien il y en a t il?
Au besoin copies colles un bout de ta macro...
0
satel
 
En fait, je travaille pour un commanditaire qui ne veut absolument pas que les liens soient mis à jour lors de l'ouverture du classeur, mais qu'ils soient mis à jour pendant la nuit. Ce sont des fichiers qui se trouveront sur les ordinateurs de tous ceux qui travaillent dans la société, donc il est très probable qu'au moins l'un d'entre eux reste sous tension. Ces mises à jour consistent effectivement en un copier/coller de données se trouvant dans le fichier (en fait, le fichier est constitué de plusieurs feuilles contenants des informations parfois redondantes, et on veut que le fichier de synthèse "synthétise" (justement) ces données dans un tableau). Il y en a environ 30 par classeur, et une centaine de classeurs.

Voilà un bout de la macro en question :

Sheets("POUR SYNTHESES").Activate
Range("A2: K2").Copy
Workbooks.Open Filename:= _
"\\Castore03\im_pm\EBT\EBT EXCEL\ESSAI OD\REPERTOIRE EBT.xls", UpdateLinks:=0
Sheets("Répertoire & Avancement ").Select
Cells(n_ligne, 4).Select
ActiveSheet.Paste Link:=True
Range(Cells(n_ligne, 4), Cells(n_ligne, 14)).Select
Selection.FormatConditions.Delete
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, _
Formula1:="0"
Selection.FormatConditions(1).Font.ColorIndex = 6
Selection.FormatConditions(1).Interior.ColorIndex = 6
ActiveWorkbook.Save
ActiveWorkbook.Close
Sheets("SUMMARY").Select
Cells(1, 1).Select
End If

Merci !
0