problème mise à jour liaison (fichier partagé)

davgif

XLDnaute Nouveau
Bonjour,

J'ai un fichier excel qui est lié à un autre fichier excel. Le premier fichier (de destination) est au format .xlsx et le fichier source au format .xlsm. Le fichier de destination est partagé sur le réseau : il est ouvert par les utilisateurs, le matin, et refermé le soir. Le fichier source est mis à jour par mes soins, normalement tous les jours, même plusieurs fois par jour.
Le problème : lorsque je mets à jour le fichier source sur mon poste, les utilisateurs qui enregistrent le fichier de destination ne voient pas cette mise à jour. Ils sont obligés de fermer le fichier, puis le rouvrir... Ce qui n'est pas du tout pratique puis qu'ils sont sur ligne de fabrication et doivent avoir l'info rapidement.

Paramètres excel pour le classeur :

Options avancées, case "Mise à jour des liaisons vers d'autres documents" cochée et case "confirmation de la mise à jour automatique des liens" décochée
gestion confidentialité, contenu externe : paramètres de sécurité pour les liaisons de classeur = activer la mise à jour automatique [...].

Le but est bien sûr que les utilisateurs ne soient pas obligés de fermer/ouvrir le fichier qu'ils utilisent, ou d'ouvrir le fichier source pour mettre à jour les valeurs.
Voilà, j'espère avoir été assez clair, et que quelqu'un aura une réponse à mon problème!

Merci d'avance
 

Lone-wolf

XLDnaute Barbatruc
Re : problème mise à jour liaison (fichier partagé)

Bonjour davgif et bienvenue sur XLD.

Essaiez le code suivant, à inserer dans un module standard du classeur source.

Code:
Sub EssaiCopie()
Application.ScreenUpdating = False

Set Wb = GetObject(ThisWorkbook.Path & "\Classeur2.xlsm")
Set Wbs = Wb.Sheets(1).Range("a1", "l10000")

Set Wbsh = GetObject("C:\" & "Classeur1.xlsx")
Set Wbd = Wbsh.Sheets(1).Range("a1")

Wbs.Copy Wbd
End Sub


A+ :cool:
 
Dernière édition:

davgif

XLDnaute Nouveau
Re : problème mise à jour liaison (fichier partagé)

Merci Lone-wolf,

J'ai adapté le 1er code en fouillant un peu partout, et j'ai réussi à atteindre mon objectif!

Sub copie()
'ThisWorkbook est le classeur source
'[fichier de destination]... comme son nom l'indique
'Noms des feuilles à adapter
ThisWorkbook.Sheets("Feuil1").Range("a2:r200").Copy
Workbooks("[fichier de destination]").Sheets("Feuil1bis").Range("a2").PasteSpecial _
Paste:=xlPasteValuesAndNumberFormats
ThisWorkbook.Sheets("Feuil2").Range("a2:r200").Copy
Workbooks("[fichier de destination]").Sheets("Feuil2bis").Range("a2").PasteSpecial _
Paste:=xlPasteValuesAndNumberFormats
ThisWorkbook.Sheets("Feuil3").Range("a2:r200").Copy
Workbooks("[fichier de destination]").Sheets("Feuil3bis").Range("a2").PasteSpecial _
Paste:=xlPasteValuesAndNumberFormats
Windows("[fichier de destination]").Activate
Sheets("Feuil4").Select
Range("C7").Select
End Sub

Ca m'a permis de coller uniquement les valeurs de mon fichier source, et pas les formules, sinon j'étais toujours dans la même problématique... J'ai rajouté quelques lignes pour retourner au fichier de destination, puisque je l'enregistre tout de suite après.
C'est peut-être un peu tortueux mais ça marche, et je n'ai vu votre nouvelle réponse qu'à l'instant...

Désolé pour le copier-coller du code, je ne savais pas comment faire une jolie fenêtre!:)

Merci encore pour la réponse, sinon je serais encore en train de chercher!
Bye
 

Discussions similaires