• Initiateur de la discussion Initiateur de la discussion BZH56
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

BZH56

XLDnaute Occasionnel
bonjour au forum
a partir de fichier individuel , j effectue un copier/collage spécial pour récupérer des valeurs dans un premier fichier de synthèse (une équipe de travail) et je lie a nouveau le fichier de synthèse avec un fichier global qui rassemble les synthèses de chaque équipe.
Mon problème est de pouvoir mettre a jour le fichier global sans avoir a passer par l actualisation du fichier de synthèse intermédiaire en l'ouvrant.. je joint un exemple des fichiers.
(pourquoi faire simple quand on peut compliquer...)
mon souhait est de créer un bouton macro dans le fichier global qui irait mettre a jour seulement a la demande.

si une âme charitable peut me simplifier la vie . merci d avance🙄
 

Pièces jointes

Re : liaison en cascade

Bonjour BZH56,
Ce que tu souhaites nécessite de travailler avec des classeurs fermés.
Il y a des restrictions à prendre en compte.
Regarde si tu trouves des infos dans :
Lire et écrire dans les classeurs Excel fermés
Je n'ai pas Excel sous la main pour tester, mais ça m'étonnerait qu'un collage avec liaison s'actualise tout seul. Je pense que tu seras obligé de passer par des macros (requête UPDATE ?).
 
Re : liaison en cascade

je viens d essayer ce code avec les classeurs fermes et cela me semble marcher
J ouvre le fichier intermédiaire , j actualise les liens , je ferme en sauvegardant , votre avis?
Code:
Workbooks.Open Filename:="C:\Users\domi\Documents\equipe1.xls", UpdateLinks _
        :=0
    ActiveWorkbook.UpdateLink Name:="C:\Users\domi\Documents\jean.xls", Type:= _
        xlExcelLinks
    ActiveWorkbook.UpdateLink Name:="C:\Users\domi\Documents\luc.xls", Type:= _
        xlExcelLinks
    ActiveWorkbook.UpdateLink Name:="C:\Users\domi\Documents\pierre.xls", Type _
        :=xlExcelLinks
    ActiveWorkbook.Save
    ActiveWorkbook.Close
    ActiveWorkbook.UpdateLink Name:="C:\Users\domi\Documents\equipe1.xls", Type _
        :=xlExcelLinks
merci hipppolite
 
Re : liaison en cascade -erreur 1004

il me reste un bug a réglé car lorsqu'un des fichiers individuels est ouvert ,le fichier total récupère bien les valeurs ,mais le fichier intermédiaire de l'equipe reste ouvert et un message d erreur apparait "erreur d exécution 1004 -la méthode 'Updatelink" de l'objet _Worbook a echoué .
Hippolite m avait prévenu mais je persiste
comment contourne par la gestion d erreur et en refermant ce fichier intermédiaire.
🙂merci de votre aide
 
Re : liaison en cascade

Bonjour le fil 🙂,
Comme ceci peut-être
Code:
Sub test()
Dim Classeur As Workbook
Application.DisplayAlerts = False
For Each Classeur In Workbooks
If Classeur.Name <> ThisWorkbook.Name Then Classeur.Close
Next
Application.DisplayAlerts = True
End Sub
ATTENTION, j'ai coupé les messages d'alerte donc les classeurs ouverts seront fermés sans possibilité d'enregistrement 😛...
Bon dimanche 😎
 
Re : liaison en cascade

Bonjour le fil 🙂,
Comme ceci peut-être
Code:
Sub test()
Dim Classeur As Workbook
Application.DisplayAlerts = False
For Each Classeur In Workbooks
If Classeur.Name <> ThisWorkbook.Name Then Classeur.Close
Next
Application.DisplayAlerts = True
End Sub
ATTENTION, j'ai coupé les messages d'alerte donc les classeurs ouverts seront fermés sans possibilité d'enregistrement 😛...
Bon dimanche 😎

merci jnp de ta suggestion mais un peu trop radicale.En théorie la maj se fera en dehors de l utilisation mais si je force la fermeture alors qu'une saisie est en cours...aie! Aie!

je voudrais seulement limiter cette fermeture au fichier intermédiaire qui sert juste a regrouper les valeurs de chaque fichier individuel.😱😱
 
Re : liaison en cascade

Re 🙂,
je voudrais seulement limiter cette fermeture au fichier intermédiaire qui sert juste a regrouper les valeurs de chaque fichier individuel.😱😱
Sur le même principe, tu peux fermer uniquement les classeurs concernés 😉...
Code:
Sub test()
Dim Classeur As Workbook
Application.DisplayAlerts = False
For Each Classeur In Workbooks
Select Case Classeur.Name
Case "Toto.xls", "Titi.xls", "Etc.xls"
Classeur.Close
End Select
Next
Application.DisplayAlerts = True
End Sub
Bon dimanche 😎
 
Re : liaison en cascade

bonsoir hippolite
si tu regardes dans mon premier message, tu verras que j ai zippe plusieurs fichiers qui reproduisent simplement la problématique rencontré.
mon seul souci est de pouvoir visualiser en mode supra ce qui est fait en dessous..
a suivre😎😎

bonjour a tous
un dernier petit up pour m assurer que l astuce qui va bien sera au rdv pour faciliter ce problème de liaison entre fichier
(rappel ; l exemple est dans mon premier message )
merci a tous et bonne journée .. le travail m attend🙁🙁
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
311
Réponses
40
Affichages
2 K
Réponses
10
Affichages
917
G
  • Question Question
Réponses
7
Affichages
1 K
Retour