Déprotéger une feuille par programmation lorsqu'ouverte par Internet Explorer [Résolu]

Messages postés
5
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 avril 2010
- - Dernière réponse : tidlidop
Messages postés
5
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 avril 2010
- 23 janv. 2008 à 16:17
Bonjour chère Communauté !



Mise en contexte : Le code doit modifier le contenu d'une cellule selon que l'utilisateur ait coché ou non une case. S'il a coché, une formule est affectée à la cellule et celle-ci doit ensuite être verrouillée, sinon la cellule reste vide et l'utilisateur devra y inscrire une date.

Mon code fonctionne très bien tant que je suis dans Excel. Le problème, c'est que comme cette feuille est déposée sur l'intranet et que c'est par l'intermédiaire de l'Internet Explorer (6.0) que l'utilisateur y accède, là, ça flanche. Lorsque l'utilisateur coche la case, le message « La méthode Unprotect de la classe Worksheet a échoué ».



Voici le code :




    Dim varPW As String



   



    ' Affection du mot de passe pour la protection des feuilles



    varPW = "couCou!"



    ' On enlève temporairement la protection de la feuille



    ActiveSheet.Unprotect varPW



<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
 





    ' Si l'aller retour est le même jour, la date de fin du séjour sera automatiquement



    ' celle du début du séjour et deviendra inactive à la saisie



    If ccAllerRetourMmJour Then



       
Range("dFin").Select






        ActiveCell.FormulaR1C1 = "=IF(DDebut<>"""",DDebut,"""")"






       
' On verrouille la cellule qui contient maintenant une formule



        ActiveCell.Locked = True



    Else



        Range("dFin").Select



        ActiveCell.Value = ""



        ' On déverrouille la cellule à compléter



        ActiveCell.Locked = False



    End If



   



    ' On remet la protection sur la feuille



    ActiveSheet.Protect varPW, DrawingObjects:=True, Contents:=True, Scenarios:=True



    ' On place le curseur pour le début de la saisie



    Range("km").Select




J'ai consulté les options d'IE. J'ai testé avec différents niveaux de sécurité... avez-vous une piste de solution ? Moi, j'ai le nez collé sur l'arbre !



Merci et, pour les amis Français, bonne nuit !







Tidlidop !


[Insert_Emoticon('/imgs2/smile_clown.gif');

<?xml:namespace prefix v ns "urn:schemas-microsoft-com:vml" /??>
<v:shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f">
<v:stroke joinstyle="miter">
</v:stroke>
<v:formulas>
<v:f eqn="if lineDrawn pixelLineWidth 0">
</v:f>
<v:f eqn="sum @0 1 0">
</v:f>
<v:f eqn="sum 0 0 @1">
</v:f>
<v:f eqn="prod @2 1 2">
</v:f>
<v:f eqn="prod @3 21600 pixelWidth">
</v:f>
<v:f eqn="prod @3 21600 pixelHeight">
</v:f>
<v:f eqn="sum @0 0 1">
</v:f>
<v:f eqn="prod @6 1 2">
</v:f>
<v:f eqn="prod @7 21600 pixelWidth">
</v:f>
<v:f eqn="sum @8 21600 0">
</v:f>
<v:f eqn="prod @7 21600 pixelHeight">
</v:f>
<v:f eqn="sum @10 21600 0">
</v:f>
</v:formulas>
<v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect">
</v:path>
<o:lock v:ext="edit" aspectratio="t">
</o:lock>
</v:shapetype>

]
[Insert_Emoticon('/imgs2/smile_clown.gif');

]










[Insert_Emoticon('/imgs2/smile_clown.gif');
]
Afficher la suite 

4 réponses

Meilleure réponse
Messages postés
5
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 avril 2010
3
Merci
Avis aux intéressé(e)s :

J'ai trouvé la solution (comme une grande fille:-)). Il faut ajouter le paramètre « userInterfaceonly:=True » lors de la protection de la feuille. Je la protège maintenant depuis l'événement « _activate » :

varPW = "couCou!"
activeSheet.protect varPW, userInterfaceonly:=True DrawingObjects:=True, 
   Contents:=True, Scenarios:=True

Merci quand même, ne serait-ce que pour votre indéfectible support moral ! :-)

Tidlidop ! [javascript:Insert_Emoticon('/imgs2/smile_clown.gif'); ]

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 141 internautes nous ont dit merci ce mois-ci

Commenter la réponse de tidlidop
Messages postés
5
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 avril 2010
0
Merci
Ouyouyouille ! Pourquoi ça fait autant d'espace dans ma portion code !!! Sincères excuses demandées à mes lecteurs !

Tidlidop ! [javascript:Insert_Emoticon('/imgs2/smile_clown.gif'); ]
Commenter la réponse de tidlidop
Messages postés
308
Date d'inscription
mardi 1 juin 2004
Statut
Membre
Dernière intervention
23 mars 2010
0
Merci
Pense à mettre "Réponse Acceptée" pour les futurs lecteurs qui seraient insteressés par ta source

_______________________
<<<< :-: 4L!@$ :-: >>>>
Commenter la réponse de alias666
Messages postés
5
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 avril 2010
0
Merci
Merci ! J'avais oublié !... mais ça fait un peu bizarre d'accepter ça propre réponse... [javascript:Insert_Emoticon('/imgs2/smile.gif'); ]

Tidlidop ! [javascript:Insert_Emoticon('/imgs2/smile_clown.gif'); ]
Commenter la réponse de tidlidop