Bonjour LeSuisse, le Forum
Désolé, je n'étais pas disponible pour une réponse plus rapide.
Il y a de grosses lacunes dans ta Syntax du code ci-dessus... (With sans End With.... Des Select inutiles et allourdissants...)
Voici une version revue et corrigée, qui va :
Avec la Feuille "Feuil1"
1) Protéger la feuille avec PassWord "toto" et rendre les Macros Utilisables même sur cellules protégées.
2) Authoriser l'usage de l'AutoFilter" (nécessite UserInterFaceOnly à Vrai)
3) Empécher la Séléction des Cellules Vérouillées
4) Masquer les Formules
Avec la Colonne "X" de cette même feuille :
5) dé-vérouiller cette Colonne "X"
6) dé-masquer les Formule de cette Colonne "X"
Fin Avec la Colonne "X"
Fin Avec la Feuille "Feuil1"
Voici la même chose en VBA : (à mettre dans un Module Standard)
Sub Ouverture()
With Sheets("Feuil1")
.Protect Password:="toto", UserInterfaceOnly:=True
.EnableAutoFilter = True
.EnableSelection = xlUnlockedCells
.Cells.FormulaHidden = True
With .Columns("X:X")
.Locked = False
.FormulaHidden = False
End With
End With
End Sub
Et pour l'activation de ces instructions à chaque ouverture (nécessaire, vue que UserInterFaceOnly est "volatile") il faut mettre ceci dans le Private Module de ThisWorkBook :
Private Sub Workbook_Open()
Ouverture
End Sub
Voilà LeSuisse, avec ceci ce devrait mieux tourner... Si tu ne veux pas que le Passworld soit Visible dans le Code, il y a plusieurs méthodes dont une, serait de cacher dans une Cellule IV65536 d'une feuille qui elle-même serait mise en mode masqué "VeryHidden" avec un code comme ceci :
Sub MasqueVeryHidden()
Sheets("Feuil2").Visible = xlSheetVeryHidden
End Sub
Et donc dans la Macro Ouverture :
Sub Ouverture()
Dim Pass As String
Pass = Sheets("Feuil2").Range("IV65536")
With Sheets("Feuil1")
.Protect Password:=Pass, UserInterfaceOnly:=True
'......... Etc etc
A noter que le code MasqueVeryHidden n'est pas à répeter et ne nécessite pas de démasquer la feuille pour être lu par la Macro "Ouverture"... Pour info, le mode VeryHidden empêche le User d'utiliser la commande Excel Menu => Format => Feuilles => Afficher... et assure ainsi une petite protection de plus pour ton Passworld (à condition que tes Users ne viennent pas sur XLD !!!)
Bon Samedi à Toi, à la Suisse et au Forum
@+Thierry