4 votes

Stratégie pour mettre à jour facilement les liens externes entrants vers un classeur Excel

Disons que vous avez 2 classeurs nommés "PrivateWorkbook" et "PublicWorkbook".

PublicWorkbook est accessible à tout le monde dans notre entreprise.

PrivateWorkbook n'est accessible qu'aux gestionnaires.

Il existe des liens externes entre PublicWorkbook et PrivateWorkBook.

Lorsque PrivateWorkbook est mis à jour, certaines cellules de PublicWorkbook doivent refléter ces changements.

Cependant, la seule façon dont les liens de PublicWorkbook sont rafraîchis est si un gestionnaire ouvre Publicworkbook après avoir modifié PrivateWorkbook.

Si un non-manager ouvre d'abord PublicWorkbook, les liens ne peuvent pas être rafraîchis car il n'a pas les droits pour ouvrir PRivateWorkbook.

Existe-t-il un moyen de faire en sorte que PublicWorkbook soit mis à jour lorsqu'un manager modifie Privateworkbook sans l'obliger à ouvrir manuellement Publicworkbook ?

1voto

Janis Veinbergs Points 4959

Utilisez VBA avec son Classeur_avant_fermeture dans votre fichier privé pour ouvrir, enregistrer et fermer automatiquement le fichier public. L'événement est déclenché lorsque votre gestionnaire ferme le dossier privé. Laissez le gestionnaire confirmer la mise à jour par un simple oui ou non.

Notez le UpdateLinks:=True qui met silencieusement à jour tous les liens externes dans votre fichier public.

Exemple de code (doit être placé sous ThisWorkbook)

Private Sub Workbook_BeforeClose(Cancel As Boolean)

    Dim wb As Workbook
    FilePath = "C:\public.xls"

    If MsgBox("Update " & FilePath & " ?", vbYesNo) = 6 Then
        Set wb = Workbooks.Open(FilePath, UpdateLinks:=True)
        wb.Close SaveChanges:=True
    End If

End Sub

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X