Bonjour
j'ai un fichier ou toutes les feuilles/cellules sont verrouillées sauf celles ou on a droit à y faire des modifs
mon problème est que le verrouillage de cellule rend les liens hypertexte inactifs
y'a t il un moyen de verrouiller la cellule tout en gardant le lien hypertexte actif
Important, il faut que la cellule soit verrouillée sinon on peut supprimer ou modifier le lien par l'utilisateur, ce qui est à éviter pour le reste..(donc .EnableSelection = xlUnlockedCells lors du verrouillage et la propriété des cellule/Protection est sur Verrouillée)
VB:
'Tout Verrouiller et cacher sauf la feuille en cours'
'----------------------------------------------'
Function VerAll()
Set Affiche = ActiveSheet
For i = 1 To Sheets.Count
Sheets(i).Visible = true
Sheets(i).Activate
With ActiveSheet
.Protect UserInterfaceOnly:=True, Password:="Mot de passe", AllowFiltering:=True
.EnableSelection = xlUnlockedCells
.EnableAutoFilter = True
End With
If Sheets(i).Name <> Affiche.Name Then Sheets(i).Visible = xlVeryHidden
Next
Affiche.Select
End Function
J'ai cherché dans le forum mais j'ai pas réussi à trouver une réponse précise malheureusement
Bonjour,
le .EnableSelection = xlUnlockedCells est trop restrictif, il vous suffit d'indiquer Contents:=True pour avoir accès au hyperlink tout en protégeant le contenu .
VB:
With ActiveSheet
.Protect UserInterfaceOnly:=True, _
Password:="Mot de passe", _
DrawingObjects:=True, _
Contents:=True, _
AllowFiltering:=True
' .EnableSelection = xlUnlockedCells
.EnableAutoFilter = True
End With
Lorsque tu verrouilles la feuille (onglet Révision/protéger la feuille), tu peux cocher "Insérer des liens hypertexte"
Les cellules sont protégées mais tu peux ouvrir le lien hypertexte.
pour le VBA
Bonjour,
le .EnableSelection = xlUnlockedCells est trop restrictif, il vous suffit d'indiquer Contents:=True pour avoir accès au hyperlink tout en protégeant le contenu .
VB:
With ActiveSheet
.Protect UserInterfaceOnly:=True, _
Password:="Mot de passe", _
DrawingObjects:=True, _
Contents:=True, _
AllowFiltering:=True
' .EnableSelection = xlUnlockedCells
.EnableAutoFilter = True
End With
ça va me rendre fou ça marche pas chez moi et je ne sais pas pourquoi !
VB:
Function VerAll()
Set Affiche = ActiveSheet
For i = 1 To Sheets.Count
Sheets(i).Visible = True
Sheets(i).Activate
With ActiveSheet
.Protect UserInterfaceOnly:=True, Password:="Mot de Passe", AllowFiltering:=True, Contents:=True
' .EnableSelection = xlUnlockedCells
.EnableAutoFilter = True
End With
If Sheets(i).Name <> Affiche.Name Then Sheets(i).Visible = xlVeryHidden
Next
Affiche.Select
End Function
A priori pas de solutions car une fois les cellules verrouillées et l'option .locked reste sur true le lien hypertexte ne marche pas
j'ai essayé autre chose
contourner ceci par
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
'Vérifie que la cellule est verrouillée
If Target.Range.Locked = True Then
'Déverrouille temporairement la cellule
Target.Range.Locked = False
'Accède au lien hypertexte
Target.Follow
'Re-verrouille la cellule
Target.Range.Locked = True
Else
'Si la cellule n'est pas verrouillée, accède directement au lien hypertexte
Target.Follow
End If
End Sub
mais ça ne marche pas et génére un bug..
Attention: pour suivre un hyperlien, il suffit d'un seul click . Si vous double-cliquez rapidement sur la cellule, vous tentez d'entrer en modification dans la cellule et vous aurez le message indiqué ...