protection et liaisons

doclaude

XLDnaute Nouveau
bonjour
je travaille avec des feuilles protégées en utilisant Protect Userinterfaceonly:=true
Le classeur lui-même n'est pas protégé.
C'est un peu complexe puisque cette commande semble avoir un fonctionnement un peu aléatoire. mais globalement cela marche.
Dans une des routines, je vérifie les liaisons des fichiers et, si nécessaire, les modifie.
Et là ça coince : je suis obligé de déprotéger les feuilles.
je n'arrive pas à comprendre pourquoi le Userinterfaceonly n'autorise pas cette commande.
Si quelqu'un a une idée, j'en serais heureux
merci d'avance
Claude
 

doclaude

XLDnaute Nouveau
Bonjour à tous
j'ai trouvé la solution de mon problème.
Le userinterfaceonly autorise le changement des liaisons par VBA mais on bute sur un autre problème (dont je ne m'explique pas la cause) : si la page affichée ne contient pas de formules avec lien, elle plante
Dans mon fichier, j'ai 2 liaisons : je parcours donc les liaisons mais il faut aussi que je parcours les feuilles pour afficher celle pour laquelle le changement de lien sera autorisé.
je saute la ligne d'erreur (on error resume next) : ça donne cela :

Set wb = Application.ActiveWorkbook
If Not IsEmpty(wb.LinkSources(xlExcelLinks)) Then 'si le classeur comporte des liaisons

For Each lk In wb.LinkSources(xlExcelLinks) 'pour chacune des liaisons
For Each s In ActiveWorkbook.Sheets 'pour chacune des feuilles du classeur
s.Protect userinterfaceonly:=True 'je protège la feuille par précaution
s.Activate j'active la feuille (on a mis screenupdating= false avant)
If lk = "maliaison" Then
On Error Resume Next 'si erreur, on continue sur les autres pages
ActiveWorkbook.ChangeLink Name:=lk, NewName:=NouveauChemin & "\maliaison"
Next
Next lk
J'espère que tout ça pourra servir à quelqu'un
Claude
 

Discussions similaires

Statistiques des forums

Discussions
312 495
Messages
2 088 964
Membres
103 992
dernier inscrit
Christine 974