Bonjour à tous ,
je ne maitrise pas à fond excel
je viens vers vous car après avoir écumé pas mal de post sur les liaisons je bloque toujours.
J'ai 3 classeurs excel A et B et C
Le classeur A est une sorte de menu général composé de boutons pour ouvrir les classeurs B et C
Tous mes classeurs sont protégés
B et C ont des liaisons entre eux et j'ai mis une macro en autopen qui les ferme si ceux ci sont ouvert par windows et invite les gens à passer par le menu du classeur A (qui fait disparaitre les barre de commande, empeche la fermeture par la croix....)
Pour ne pas perturber mes utilisateurs je ne veux pas qu'à l'ouverture de B le message "ce classeur comporte des liaisons....."
Aussi dans le code A j'ai mis cela pour ouvrir la classeur B est
Et la j'ai quand même le message.Code:Workbooks.Open Filename:=chemin & "AnalyseSegmentation.xls", UpdateLinks:=true
J'ai fait le test en mettant à false mais bien sur la les liaisons ne se font pas.
Aussi j'avais pensé à rajouter un bouton dans B du typeMais le problème c'est que j'ai encore A d'ouvertCode:ActiveWorkbook.UpdateLinks = xlUpdateLinksAlways
J'ai aussi vu un post qui disait de déprotéger toute le feuilles du classeur B pour Remettre à jour les liaisons.
Mais c'est un échec
Quelle est la meilleure solution en sachant que je ne peux pas mettre de code dans B en autopen et workbook open vu que j'ouvre en macro à partir d'un autre classeur.
ça fait 5 heure que j'écume les forums et que j'essaye tout ce qui à été proposé mais je ne retrouve pas mon cas de figure.
Avez vous une solution?
Ci dessous des méthodes que j'ai essayé sans succès
méthode 1 mis dans une macro de module dans le classeur A egalement essayé sur un bouton en test dans B
méthode 2 idem qu'au dessusCode:ActiveWorkbook.UpdateLinks = xlUpdateLinksAlways
méthode 3 (ne fonctionne pas car mon classeur B s'ouvre à partir de A)Code:
1
2 'ActiveWorkbook.UpdateLink Name:="G:\Copie de Classeur1.xls", Type:= _ xlExcelLinks
méthode 4 (ne fonctionne pas car mon classeur B s'ouvre à partir de A)Code:
1
2
3
4
5
6
7
8
9
10 Sub workbook_open() ' Dim chemin As String ' chemin = Workbooks(ActiveWorkbook.Name).Path & "\" ThisWorkbook.UpdateLinks = xlUpdateLinksAlways 'ActiveWorkbook.UpdateLink Name:= chemin & "classeurB.xls", Type:= _ xlExcelLinks End Sub
méthode 5 mise sur un bouton dans le classeur B (j'ai un bug du au fait que la macro est perdu entre le classeur A qui est ouvert et BCode:
1
2
3
4 Private Sub Workbook_Open() Application.AskToUpdateLinks = False ActiveWorkbook.UpdateLink Name:=ActiveWorkbook.LinkSources End Sub
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 Sub MiseAJour() Dim wbk As Excel.Workbook 'instanciation Set wbk = Application.ThisWorkbook ' Déprotection wbk.Unprotect For i = 1 To 5 wbk.Sheets(i).Activate wbk.Sheets(i).Unprotect Next i ' Mise à jour wbk.UpdateLink wbk.LinkSources ' Reprotection For i = 1 To 5 wbk.Sheets(i).Activate wbk.Sheets(i).Protect Next i wbk.Protect 'activation feuille 2 wbk.Sheets(2).Activate 'libération Set wbk = Nothing End Sub