[excel] Protection feuille et classeur

Résolu
mimic -  
 fremarx -
Bonjour,

Je souhaite proteger mon classeur excel ainsi que les feuilles qu'il contient. Mais je rencontre des petites difficultés.

L'application que j'ai développée avec excel, contient des menus déroulants, et des boutons et des graphiques qui évoluent en fonction de reponses qu'un utilisateur lambda donnera ( qcm ). Si je ne touche a rien au niveau de la protection de base ( tout est protegé ) et que je demande a protéger ma feuille avec les trois options cochées, alors l'utilisateur ne peut que regarder sans interagir avec l'outil. Si je déprotège certaines cellules, par exemple les cellules d'un tableau ( pas forcement visible ) mais qui sera necessaire a la conceptiondu graphe dynamique, l'utilisateur pourrait y rentrer des info a la main; si je ne protege pas les objets ( mes boutons en l'occurence ) l'utilisateur peut cliquer dessus, mais peut aussi les supprimer.

Est ce que je m'y prends mal ou le seul moyen de proteger mon outil tout en laissant un droit d'interaction consiste en du "bidouillage"??

et comment empecher un utilisateur de scroller?

merci de vos reponses
Configuration: Windows NT 4.0
Internet Explorer 5.5

7 réponses

  1. 0seb0 Messages postés 37 Statut Membre 16
     
    Je m'avance peut-être un peu mais je pense qu'il doit y avoir une propriété de protection sur chaque objet, comme sur les cellules. Alors tu peux l'activer ou non. Tu désactives donc la protection des objets que peut modifier l'utilisateur puis tu vérouilles ton classeur. Tout sera bloqué SAUF... ce que tu auras explicitement dévérouillé.

    Si c'est pour des macros...
    Tu dévérouilles tes objets (ici une cellule, à adapter donc...) :
    Range("K17").Select
    Selection.Locked = False
    Selection.FormulaHidden = False

    Ca, ca protège ta feuille :
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True

    Si tu veux la déprotéger :
    ActiveSheet.Unprotect

    Amuse-toi bien ! :-)
    5
    1. Le Keiser
       
      ActiveSheet.Protect pour une feuille...ok

      Et pour protéger toutes les feuilles...une idée ? Car quand j'essaye avec ActiveWorkbook.Protect, j'ai un souci de macro...

      Un grand merci.
      0
    2. m@rina Messages postés 27551 Date d'inscription   Statut Modérateur Dernière intervention   11 562 > Le Keiser
       
      Bonjour,

      Protéger une feuille et protéger le classeur, ce n'est pas la même protection.

      Si tu veux protéger toutes les feuilles, il faut faire une macro qui boucle sur toutes les feuilles :

      Sub protéger_feuilles()
      Dim f As Worksheet
      For Each f In Sheets
      f.Protect
      Next f

      End Sub
      0
    3. mibri > m@rina Messages postés 27551 Date d'inscription   Statut Modérateur Dernière intervention  
       
      bonjour
      depuis le temps que je cherche à protéger toutes mes feuilles, j'ai ici trouvé comment le faire. Merci
      Pouvez vous m'indiquer quelle est la formule inverse pour déprotéger toutes les feuilles...
      Par avance je vous remercie
      michel
      0
    4. mibri127 Messages postés 2 Date d'inscription   Statut Membre > m@rina Messages postés 27551 Date d'inscription   Statut Modérateur Dernière intervention  
       
      bonjour,
      J'ai enfin trouvé comment protéger l'ensemble de mes feuilles xl simultanément, pouvez vous me communiquer la formule inverse pour la déprotection.
      Par avance je vous en remercie
      michel
      0
    5. m@rina Messages postés 27551 Date d'inscription   Statut Modérateur Dernière intervention   11 562 > mibri127 Messages postés 2 Date d'inscription   Statut Membre
       
      Bonjour,

      C'est la même chose : tu mets simplement UnProtect à la place de Protect.

      m@rina
      0
  2. m@rina Messages postés 27551 Date d'inscription   Statut Modérateur Dernière intervention   11 562
     
    Bonjour mimic,

    Une petite précision qui a son importance : la fonction "Masquée" (de l'onglet Format, Protection) sert à masquer les formules dans la barre de formule... C'est tout !

    m@rina
    3
  3. Furtif Messages postés 9956 Statut Contributeur 933
     
    Salut

    En complément de "Outils / Protection", tu peux "autoriser des utilisateurs à modifier des plages"
    Tu as également accés au niveau des cellules à "Vérouillé" et "Masqué"
    Tu peux également "Masquer des colonnes ou des lignes"

    Bref, pas mal de possibilités, complétées par "Données / Validation" qui permet de définir ou de limiter le type d'entrée autorisée.
    0
  4. mimic
     
    merci pour les bouts de code vba ca peut me servir je pense.
    Sinon comment fonctionne le masquage? avant de poster plus haut, j'avais testé masquer le truc, ainsi que le déverouillage de cellule a la main, mais pour le masquage je ne voyais pas de difference.

    sinon pour mon histoire d'objet a vérouiller, j'ai trouvé le probleme: j'avais mis mes objets bouton sur mon graphe, et mon graphe etant protégé, les boutons l'etait egalement et peu importe leur position arriere plan ou avant plan, je n'arrivais pas cliquer sur eux. donc je les ai dupliquer en dehors du graphe

    merci pour votre aide
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. mimic
     
    ah ok merci de la precision, je pensais ca servait a camoufler la cellule plus proprement qu'avec un jeu de couleurs
    0
  7. fadel
     
    Bonjour a tous. Je voudrais limiter le temps d'utilisation d'un classeur
    .Par exemple , apres le 15 juillet 2008 , je voudrais que mon classeur ne puisse plus etre ouvert par quiconque .
    Merci pour toute reponse
    0
  8. m@rina Messages postés 27551 Date d'inscription   Statut Modérateur Dernière intervention   11 562
     
    Bonjour,

    Tu peux mettre une macro qui empêche l'ouverture du fichier passé une certaine date... Mais si la personne modifie l'horloge du PC, le fichier s'ouvrira ! ;) Et si la personne a désactivé ses maros, idem...

    m@rina
    0
    1. danb
       
      ...euh, mes ezkuses !

      Mais, sauf dans un cas tordu...

      Tu crées une routine (macro) qui comptabilise le temps et qui s'appuie sur l'horloge (ou un compteur propre au fichier, même s'il s'appuie sur l'horloge pour compter, durant son ouverture.
      Ainsi,
      quand l'application tourne, elle compte le temps dans une cellule masquée.
      quand l'application ne tourne pas, elle ne compte pas le temps.

      Et au lieu de dire que le fichier est illisible à partir d'une date, tu précises qu'il le sera après x heures d'utilisation du fichier, et non de présence sur le PC.

      A plus !
      0
    2. danb
       
      ...euh, mes ezkuses !

      Mais, sauf dans un cas tordu...

      Tu crées une routine (macro) qui comptabilise le temps en s'appuyant sur l'horloge. Tu crées un compteur qui stockera le temps dans une cellule et qui l'incrémente tant que le fichier est ouvert.
      Ainsi,
      quand l'application tourne, elle compte le temps en repartant de la cellule qui lui est associée, et elle la fait progresser.
      quand l'application ne tourne pas, elle ne compte pas le temps.

      Et au lieu de dire que le fichier est illisible à partir d'une date, tu précises qu'il le sera après x heures d'utilisation du fichier, et non de présence sur le PC. Et ce nombre d'heures est contenu dans la fameuse cellule masquée.

      A plus !
      0
    3. fremarx
       
      Bonjour,

      Mon problème est le suivant,
      J'ai utilisé la fonction mettre sous forme de tableau d'excel afin d'obtenir un tableau qui s'agrandit lorsque l'on écris quelque chose sous la dernière ligne de celui-ci.

      Se tableau se situe dans une feuille que je voudrais protéger afin de ne laisser que quelques champs et seulement certaines lignes tu tableau libres. J'ai bien sélectionner les cellules que je voulais laisser libres (les autres étant contraintes par défaut) mais lorsque je met la protection sur la feuille le tableau deviens comme statique, l'ajout de ligne automatique par écriture en dessous de celui-ci ne se fait plus.

      J'ai retenter l'expérience en déverrouillant toutes les cellules de la feuille puis j'ai réactiver le verrou sur les cellules concernés mais ca ne fonctionne pas mieux.

      La seul solution intermédiaire que j'ai trouver c'est de permettre l'ajout de lignes lorsque je verrouille la feuille, de cette manière je peux inséré des lignes dans mon tableau mais ce n'est pas tout à fait ce que je voudrais car le but est de faire un suivi.
      0