[Résolu]Contourner protection feuille

Contourner protection feuille [Résolu] - VB/VBA/VBS - Programmation

Marsh Posté le 18-03-2013 à 09:54:48    

Bonjour à tous,
 
Je suis actuellement en train de créer un fichier Excel qui aura pour finalité d'être rempli par d'autres personnes.  
J'ai donc eu l'idée de vouloir protéger la feuille afin qu'elles ne fassent pas n'importe quoi dessus et je voudrais qu'elles passent par l'intermédiaire d'un formulaire que j'ai créé sous VBA pour modifier les cellules.
 
Malheureusement comme la feuille est protégée, lorsque j'essaie de rajouter des informations sur la feuille, j'ai un message d'erreur comme quoi la feuille est justement protégée...  
Existe-il un moyen de passer outre cette protection mais seulement à travers le formulaire ?
 
Merci d'avance  :)


Message édité par meurder le 18-03-2013 à 14:50:38
Reply

Marsh Posté le 18-03-2013 à 09:54:48   

Reply

Marsh Posté le 18-03-2013 à 12:36:58    

 
           Bonjour, voir les méthodes Protect, Unprotect et la propriété ProtectContents
 

Reply

Marsh Posté le 18-03-2013 à 14:49:51    

Bonjour Marc L,
 
Problème résolu avec cette syntaxe :
 
With Worksheets("Feuil1" )
 
    .Unprotect "MonMotDePasse"
 
    'On remplit ici les cellules
 
    .Protect "MonMotDePasse"
 
End With  
 

Reply

Marsh Posté le 18-03-2013 à 15:35:53    

 
           Bien !
 
           Astuce :  si la feuille modifiée fait partie du classeur contenant le code VBA, on peut directement l'appeler par son nom object
                         comme il apparaît dans l'environnement VBA :  Feuil1 (Données) …           [par défaut Feuil1 (Feuil1)]
 
                         Entre parenthèses, c'est le nom de la feuille, utilsé par exemple dans Worksheets("Données" ).
 
                         Avant les parenthèses, c'est le nom objet qui peut s'utiliser ainsi :

     MDP = "MonMotDePasse"
         
     Feuil1.Unprotect MDP
 
     ' modification des cellules
 
     Feuil1.Protect MDP

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed