Lien avec des classeurs protégés par un mot de passe

thibaut02

XLDnaute Nouveau
Bonjour le forum,

Mon problème est le suivant :
J'ai un classeur Excel que j’appellerai "classeur père" qui est relié à 3 "classeur fils".
Mes 3 "classeurs fils" sont protégés par un mot de passe que j'ai défini. (Fichier->Informations->Protéger le classeur)
Mon classeur père n'est pas protégé puisqu'il est en accès limité.

Il y a des cellules liées dans les 2 sens :
- Certaines cellules de mes classeurs fils récupèrent l'information qui vient du classeur père.
- et inversement, j'utilise les classeurs fils pour afficher certaines données dans le classeur père.


Quand j'ouvre le classeur père, il me demande les mots de passes des 3 documents fils...ce que j'aimerais éviter...

Par expérience, j'ai essayé de pallier au problème avec :
Code:
Private Sub Workbook_Open()

Application.DisplayAlerts = False
Application.AskToUpdateLinks = False

End Sub


Mais ça ne marche pas...

Quelqu'un aurait-il une solution à me proposer ?

Merci,

Thibaut
 

gilbert_RGI

XLDnaute Barbatruc
Re : Lien avec des classeurs protégés par un mot de passe

Bonjour,

quand vous faites à partir du fichier père ouvrir le 1er fichier fils avec Workbooks.Open
vous pouvez mettre le mot de passe pour l'ouverture dans les attributs
Open(FileName, MettreÀJourLiens, LectureSeule, Format, MotDePasse, MotDePasseÉcritureRes, IgnorerLectureSeuleRecommandée, Origine, Séparateur, Modifiable, Notifier, Convertisseur, AjouterAuxDerniersFichiersUtilisés, Local, ChargementEndommagé)
 

thibaut02

XLDnaute Nouveau
Re : Lien avec des classeurs protégés par un mot de passe

Bonjour,
Merci de l'astuce, je n'y avais pas pensé.

J'utilise le code suivant :
Private Sub Workbook_Open()

Application.ScreenUpdating = False
Application.DisplayAlerts = False
Application.AskToUpdateLinks = False

Dim path As String, sep As String
'récupérer le chemin du document, les 4 documents se trouvent dans la même racine
sep = Application.PathSeparator
path = ActiveWorkbook.path & sep

'ouverture puis fermeture instantannée pour mettre à jour les données du document mère avec le document 1
Workbooks.Open Filename:="\\" & path & "document1", Password:="mdp1"
Workbooks("Perf BJ 2014.xlsm").Close SaveChanges:=False

'ouverture puis fermeture instantannée pour mettre à jour les données du document mère avec le document 2
Workbooks.Open Filename:="\\" & path & "document2", Password:="mdp2"
Workbooks("Perf Pa 2014.xlsm").Close SaveChanges:=False

'ouverture puis fermeture instantannée pour mettre à jour les données du document mère avec le document 3
Workbooks.Open Filename:="\\" & path & "Document3", Password:="mdp3"
Workbooks("Perf T 2014.xlsm").Close SaveChanges:=False


Application.ScreenUpdating = True

End Sub

Problème : avant d'effectuer cette requête, Excel doit déjà chercher les liens des documents et du coup il me demande mes 3 mots de passe pour ensuite ouvrir et fermer les 3.

Je n'arrive pas à l’empêcher de me demander les mots de passe de mes documents liés
 

thibaut02

XLDnaute Nouveau
Re : Lien avec des classeurs protégés par un mot de passe

Malheureusement je ne crois pas que ça soit le problème. J'ai vraiment l'impression que ma fonction workbook_open intervient un peu trop tard à savoir que le fichier doit rechercher les valeurs avant même que la fonction ne se lance. Ce qui semble assez étonnant...
 

gilbert_RGI

XLDnaute Barbatruc
Re : Lien avec des classeurs protégés par un mot de passe

tester avec un fichier neutre mais avec mot de passe sans lien pour voir

c'est peut-être le fichier père qui provoque ce comportement avec les liens internes
 
Dernière édition:

gilbert_RGI

XLDnaute Barbatruc
Re : Lien avec des classeurs protégés par un mot de passe

Donc il faudrait peut-être supprimer les liens du fichier père en sortant à la fermeture puis les rétablir à l'ouverture


c'est une idée pas certain du résultat

Code:
Sub EffacerLiens()
With Selection
    .Hyperlinks.Delete
End With
End Sub
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 305
Messages
2 087 080
Membres
103 457
dernier inscrit
fab2614