Mise à jour automatique des liens

Re-Bonjour le forum,

La solution du "Shell" me parait effectivement moins adaptée que le "Workbooks.Open".

Cousinhub, ci-dessous mon code (très basic...) pour deux des fichiers que j'ouvre. En fait je n'en ai mis que 2 mais il y a encore 12 autres fichiers ouverts à la suite dans le code...

Cette petite procédure prend environ 1 minute 30 à ouvrir les 14 fichiers et à les refermer aussitôt en les sauvegardant (pour que la fonction AUJOURDHUI() qu'ils contiennent se mette à jour...).

Sub MAJ_P()
    Application.ScreenUpdating = False

    Workbooks.Open Filename:= _
        "S:\RESSOURCES\DSB BDD\2_DIRECT ASSISTANCE\1_ENCADREMENT\Planning_DA_69_2009.xls"
    ActiveWorkbook.Save
    ActiveWorkbook.Close

    Workbooks.Open Filename:= _
        "S:\RESSOURCES\DSB BDD\2_DIRECT ASSISTANCE\1_ENCADREMENT\Planning_DA_38_2009.xls"
    ActiveWorkbook.Save
    ActiveWorkbook.Close
..........................................
..........................................
..........................................    
End Sub

L'inconvénient de cette procédure, c'est quand quelqu'un est déjà en train de travailler sur l'un des fichiers. On ne le voit pas tout de suite mais quand la personne le ferme, un message signalant la disponibilité du fichier apparait, même plusieurs heures après...

Pour éviter cela, j'espérais qu'une simple fonction dans VBA puisse mettre à jour mes fichiers sources sans pour autant les ouvrir. Mais j'en demande peut-être beaucoup trop...

En tous cas, merci de m'aider à améliorer mon application.

Fabrice,

screen analyse screen tableau

Fabrice, j'aurai une question par rapport à ton code,

j'aurai voulu savoir à quoi sert la commande :

Application.ScreenUpdating = False

c'est pour mettre à jour la page qui s'ouvre ?

PS : sinon je me disais , en utilisant des variables globale inter-fichiers cela ne marcherai pas ?

Re-,

2 petites questions :

- Est-ce que les fichiers sont tous dans le même répertoire?

- Pourrais-tu donner le nom de tous les fichiers?

Et une demande de confirmation :

- les fichiers ne sont pas partagés?

Bonsoir à tous,

Ritchi, la fonction "Application.ScreenUpdating = False" permet d'exécuter la macro sans que les écrans défilent. Dans ce cas précis, les fichiers s'ouvrent et se ferment à la suite sans que je puisse le voir dans mon fichier de synthèse... Seule, la barre bleue en bas de l'écran montre que tel ou tel fichier est ouvert et se referme... Je crois que cela accélère, de fait, la procédure...

cousinhub, NON, mes fichiers ne sont pas dans le même répertoire (cela aurait été trop simple...). Je veux bien te donner les autres noms (il y en a 12 autres...) si cela est vraiment nécessaire car cela risque de me prendre pas mal de temps...

D'autre part, les fichiers ne sont pas en mode "partagé" même si plusieurs utilisateurs y ont accès.

J'espère avoir été clair dans mes explications.

Merci encore pour votre aide.

Fabrice,

Re-,

le code pour un fichier déjà ouvert par un de tes collègues :

Sub mise_a_jour()
Application.DisplayAlerts = False
Workbooks.Open ("S:\RESSOURCES\DSB BDD\2_DIRECT ASSISTANCE\1_ENCADREMENT\Planning_DA_69_2009.xls")
If ActiveWorkbook.ReadOnly Then
    ActiveWorkbook.Close
    ActiveWorkbook.UpdateLink ActiveWorkbook.LinkSources
Else
    ActiveWorkbook.Save
    ActiveWorkbook.Close
End If
End Sub

A noter que si le fichier est déjà ouvert, il est donc forcément à jour de la date....

On le referme, et on met à jour les liens...

Par contre, pour éviter d'avoir la notification (le fichier est désormais disponible.....), la seule et unique manière de l'éviter est de quitter Excel après avoir terminé tout ton traitement...Sinon, tu l'auras dès que ton collègue quittera le fichier...

Bonjour à tous,

Je n'ai pas eu vraiment le temps de tester le dernier code transmis par cousinhub (pas mal de boulot avant les vacances...) mais effectivement, si le fichier est en lecture seule, c'est qu'un collègue est dessus et il sera forcément à jour de date.

Je teste et vous tiens au courant.

Bonne journée à tous.

Fabrice,

Re-bonjour le forum,

Après test, la macro a l'air de fonctionner parfaitement avec les modifs de cousinhub. Elle s'exécute maintenant en moins d'une minute et je considère que, pour tout le travail qu'elle effectue, c'est une durée relativement raisonnable.

Merci encore à tous pour votre aide.

Fabrice,

Rechercher des sujets similaires à "mise jour automatique liens"