Grouper/dissocier sur une feuille proteger

Résolu/Fermé
Tipunchie -  
 FRS -
Bonjour,

J'utilise Excel XP.

J'ai une feuille excel avec environ 300 lignes. J'ai groupé les lignes par categorie pour rendre le fichier plus lisible ...
Jusque là, pas de soucis, les boutons +/- et 1/2/3/4 fonctionne à merveille.

Par contre, dès que je protege la feuille, impossible d'utiliser les boutons +/- et 1/2/3/4
Pourquoi je protege ma feuille ? Car, je l'envoi à une autre personne et je n'ai pas specialement envie qu'il me casse tout, par contre, j'aimerais qu'il profite egalement d'une lecture plus facile par le biais des boutons +/- et 1/2/3/4

Merci d'avance

Olivier
Configuration: Windows XP
Internet Explorer 7.0

17 réponses

  1. Anonyme
     
    Bonjour

    Pouvoir grouper et dissocier des lignes et des colonnes sur une feuille protégée dans Excel

    Private Sub Workbook_Open()
    With Worksheets("Feuil1")
        .EnableAutoFilter = True
        .EnableOutlining = True
        .Protect Contents:=True, Password:="Toto", UserInterfaceOnly:=True
    End With
    End Sub

    EnableAutoFilter
    UserInterfaceOnly
    EnableOutlining

    Merci
    21
    1. Nouseforaname
       
      Bonjour,

      Je reviens un peu tardivement sur ce problème mais je faire à faire exactement cette manip mais sur toutes les feuilles de mon classeur.

      Une idée pour m'aider ?
      Merci
      0
    2. Stef
       
      Super,

      la formule, sa marche impeccable, la copier - coller dans the workbook et modifier en fonction du nom de l'onglet et hop impeccable, on peut proteger la feuille toute en laissant la possibilité d'ouvrir ou de fermer les groupes.

      merci
      0
    3. Stef
       
      Re salut,

      Pour toutes les feuilles du classeur il te suffit de faire cela par exemple :

      Private Sub Workbook_Open()
      With Worksheets("Feuil1")
      .EnableAutoFilter = True
      .EnableOutlining = True
      .Protect Contents:=True, Password:="Toto", UserInterfaceOnly:=True
      With Worksheets("Feuil2")
      .EnableAutoFilter = True
      .EnableOutlining = True
      .Protect Contents:=True, Password:="Toto", UserInterfaceOnly:=True
      End With
      End With
      End Sub

      et voila autant de fois que de feuille

      a+
      0
    4. max
       
      Je vous remercie, ça marche. Cependant, il faudrait préciser dans ce post, pour les débutants, la façon dont procéder pour faire une macro à la rache (pour ceux qui ont le temps, je ne l'ai pas). Je dis ca parce que j'ai galéré!
      0
    5. gna
       
      une macro a la rache.... rache itique ou pas?.....
      0
  2. FRS
     
    Pour faire simple:

    1/ Rendre visible l'onglet "Développeur"
    -> Aller dans "Fichier" -> "Options" -> "Personnaliser le ruban" puis cocher l'onglet "Développeur"
    2/ Aller dans l'onglet "Développeur"
    3/ Cliquer sur "Visual Basic"
    4/ Double cliquer sur "ThisWorkbook" dans l'arbre à gauche
    5/ Coller ce morceau de code:

    Private Sub Workbook_Open()
    Dim WS_Count As Integer
    Dim I As Integer

    WS_Count = ActiveWorkbook.Worksheets.Count
    For I = 1 To WS_Count
    With ActiveWorkbook.Worksheets(I)
    .EnableAutoFilter = True
    .EnableOutlining = True
    .Protect Contents:=True, UserInterfaceOnly:=True
    End With
    Next I

    End Sub

    6/ Enregistrer (le format sera peut être différent car prise en charge des macros demandée)
    15
  3. LatelyGeek Messages postés 1774 Date d'inscription   Statut Membre Dernière intervention   550
     
    Quand tu protèges la feuille, tu dois avoir plusieurs cases à cocher/décocher (Contenu,cellules etc)

    Je n'ai pas XP pour l'instant, rappelle-moi quelles sont ces options et je te dirai laquelle décocher...
    1
  4. lise64
     
    Bonjour,

    je ne comprends pas, j'ai essayé tous vos codes et ça ne marche toujours pas!!
    mon objectif est: protéger une feuille, en laissant certaines cellules libres (jusque là ok), et en laissant la possibilité d'ouvrir et fermer les +/- (plan) à l'utilisateur.

    A priori, les codes que vous donnez sur cet échange correspondent bien à ma demande mais quand je le fais ça ne marche pas!

    Bon vu que suis une quiche en VBA, je vais vous décrire ce que je fais:

    je fais clique droit sur la feuille en question, je clique sur "visualiser le code", et là sur la fenêtre qui apparaît je mets:

    Private Sub Workbook_Open()
    With Worksheets("SAISIE GESTION")
    .EnableAutoFilter = True
    .EnableOutlining = True
    .Protect Contents:=True, Password:="", UserInterfaceOnly:=True
    End With
    End Sub

    j'enregistre mon doc excel, je ferme, je réouvre, et quand je clique sur les +, ça me dit que je ne peux pas vu que ma feuille est protégée!

    Si quelqu'un pouvait m'éclairer, ce serait super!

    Merci d'avance et vive les forums!
    1
    1. Raymond PENTIER Messages postés 58213 Date d'inscription   Statut Contributeur Dernière intervention   17 482
       
      ... et si tu ajoutais

      EnableAutoFilter
      UserInterfaceOnly
      EnableOutlining

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

    Posez votre question
  6. Tipunchie
     
    Merci pour vos reponses ...

    @ LatelyGeek : J'ai commencé par proteger la feuille en cochant toutes les options (securité minimum), on peut alors Ajouter des colonnes, masquer ou afficher des lignes, mais tout le module de plan/grouper/dissocier est indisponible ...

    @ Raymond : Effectivement, cela ressemble un peu à ça, mais je n'ai meme pas la possibilitée de mettre un coup d'epaule :)
    Pourquoi excel differencie tant le fait de pouvoir masquer/afficher de celui de grouper/dissocier :s

    Bonne journée
    0
  7. LatelyGeek Messages postés 1774 Date d'inscription   Statut Membre Dernière intervention   550
     
    Bon, dommage, c'était une piste...
    0
  8. Raymond PENTIER Messages postés 58213 Date d'inscription   Statut Contributeur Dernière intervention   17 482
     
    Heureux pour toi qu'un Anonyme providentiel ait proposé une solution macro. Je n'y connais rien, en VBA, et je ne peux même pas tester l'efficacité et la facilité d'emploi de cette méthode. J'espère qu'elle sera transparente pour le destinataire de ton fichier. Salut.
    0
  9. Tipunchie
     
    En fait, avant de la tester, j'ai essayé de la comprendre (ça evite les mauvaises surprises ...)
    D'un point de vue purement fonctionnelle, c'est pas mal, en fait, ça protege la feuille (meme si elle n'etait pas protégé) avec la possibilitée de toucher au plan ...
    Par contre, cela impose de mettre le mot de passe en toute lettre dans la macro ... Ce qui est forcement une faille de securité, d'un autre coté, pour quiconque qui connait acyd, la securité d'un mot de passe excel, c'est bien pour les novices :)

    Néanmois, je ne sais pas si ça a evolué sur les nouvelles versions d'excel, mais devoir passer par une macro pour réaliser ceci, ça m'etonne un peu :s

    Merci à tous de m'avoir aider
    0
  10. lise64
     
    où ça ? avant? aprés? ça n'y est pas déjà marqué?

    Private Sub Workbook_Open()
    With Worksheets("SAISIE GESTION")
    .EnableAutoFilter = True
    .EnableOutlining = True
    .Protect Contents:=True, Password:="", UserInterfaceOnly:=True
    End With
    End Sub

    désolée je n'y connais vraiment rien...
    0
  11. lise64
     
    héhé! et bien non ça ne marche toujours pas.

    Il doit y avoir un truc tout bête mais pourtant j'ai l'impression de tout avoir essayé.

    Merci quand même.

    Si qqun d'autre a une idée...
    0
  12. Stephy
     
    Bonjour,

    je suis novice dans vba et je souhaiterai pouvoir bénéficier de mes groupements tout en ayant des feuilles protégées.

    je n'arrive pas à réaliser cette action, j'ai déjà une macro qui protège mes feuilles d'un seul coup, est-ce le problème?

    voici ce que j'ai mis pour obtenir l'action de grouper/dissocier mais cela ne fonctionne pas et n'annonce un pb sur cette ligne (en gras).
    "erreur 9"

    Private Sub Workbook_Open()
    With Worksheets("Feuil7")
    .EnableAutoFilter = True
    .EnableOutlining = True
    .Protect Contents:=True, Password:="Toto", UserInterfaceOnly:=True
    End With
    End Sub

    le programme ne me demande jamais le mot de passe est-ce normal?
    Que dois-je ajouter ou enlever?

    merci beaucoup de votre aide
    @ bientôt
    0
  13. Yoyo
     
    Bonjour,

    étant confronté au même problème je me penche sur le sujet.

    Le morceau de programme évoqué dans les précédents messages fonctionne du moment que le fichier est ouvert.

    Mais après fermeture et ré-ouverture du fichier, la protection reste mais les restrictions que nous cherchions à enlever sur le plier/déplier n'est pas conservé.

    C'est pourquoi il faut le mettre dans une fonction qui fonctionne à l'ouverture du fichier excel (Private Sub Workbook_Open() ) et non pas dans un sub classic comme moi je le fais actuellement.

    Mais comme les postes informatiques n'ont pas le niveau de sécurité faible chez nous, le lancement de cette macro à l'ouverture n'est pas possible.

    Donc si quelqu'un à une solution de contournement pour que les restrictions perdurent à la prochaine ouverture du fichier je suis preneur.

    Bonne journée à vous.
    Cordialement.
    0
  14. grangcycy
     
    bonsoir,

    J'ai moi aussi le meme soucis,j'ai plusieurs feuille avec des colonne ou lignes groupées je les mets les une après les autres comme l'exemple un peu plus haut mais cela ne marche pas car il met les with worksheets ("nom feuille") en jaune.
    pouvez vous me venir en aide pour trouver d'où vient l'erreur.

    Je vous remercie par avance.

    Cordialement
    0
  15. aurelie91220
     
    Bonsoir Grangcycy,

    A la place de "nom feuille" as-tu écris le nom de ta feuille...exemple la feuille que tu veux verrouiller s'appelle "bidule" tu marques With Worksheets("bidule") .

    Moi aussi j'ai une question a indiquer dans ce post, qui date quand même de 2008! Pour ma part la macro de verrouillage fonctionne très bien (je l'ai affecté à un bouton personnalisé dans ma barre d'outil). Je me demandais si je pouvais avoir une macro similaire qui me permettrai de déverrouiller en cliquant sur un bouton perso, à la place d'aller dans outils, protection...

    Merci par avance et Grangcycy j'espère que ca marchera pour toi.
    0
  16. Fab
     
    Créer une macro et écrire tout simplement dans le corps de la subroutine

    ActiveSheet.Unprotect

    et affecter un bouton à cette macro.
    0
  17. Raymond PENTIER Messages postés 58213 Date d'inscription   Statut Contributeur Dernière intervention   17 482
     
    "Comment ouvrir quand même une porte fermée à clef ?"

    Voila exactement la question que tu poses !
    Masquer des lignes pour cacher certaines informations est l'un des objectifs prioritaires de la protection de feuille.
    Alors tu dois choisir, entre utiliser le Grouper-dissocier et Protéger la feuille ; c'est l'un OU l'autre.
    -2
    1. bobby
       
      On ne te demande pas d'ouvrir une porte fermée à clef mais plutot de pouvoir regarder à travers une fenêtre fermée.

      Si tu veux utiliser des images c'est cool et simpa mais choisi la bonne au moins.
      0
    2. Raymond PENTIER Messages postés 58213 Date d'inscription   Statut Contributeur Dernière intervention   17 482
       
      Si tu veux donner des leçons n'attend pas 3 ans pour le faire ! ça nous oblige à tout relire pour comprendre de quoi tu veux parler, et finalement ça ne présente plus aucun intérêt pour personne : tu aurais facilement pu garder ta remarque pour toi ...
      0