Déprotéger une feuille par programmation lorsqu'ouverte par Internet Explorer

Résolu
tidlidop Messages postés 5 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 avril 2010 - 21 janv. 2008 à 20:50
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');
]

4 réponses

tidlidop Messages postés 5 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 avril 2010
21 janv. 2008 à 21:59
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'); ]
3
tidlidop Messages postés 5 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 avril 2010
21 janv. 2008 à 20:54
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'); ]
0
alias666 Messages postés 308 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 23 mars 2010
22 janv. 2008 à 09:14
Pense à mettre "Réponse Acceptée" pour les futurs lecteurs qui seraient insteressés par ta source

_______________________
<<<< :-: 4L!@$ :-: >>>>
0
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
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'); ]
0
Rejoignez-nous