Grouper/dissocier sur une feuille proteger
Résolu/Fermé
A voir également:
- Grouper/dissocier sur une feuille proteger
- Comment supprimer une feuille sur word - Guide
- Proteger cellule excel - Guide
- Comment créer un groupe sur whatsapp - Guide
- Feuille de pointage excel - Télécharger - Tableur
- Comment imprimer en a5 sur une feuille a4 - Guide
17 réponses
Bonjour
Pouvoir grouper et dissocier des lignes et des colonnes sur une feuille protégée dans Excel
EnableAutoFilter
UserInterfaceOnly
EnableOutlining
Merci
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
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)
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)
LatelyGeek
Messages postés
1758
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
5 janvier 2023
550
21 août 2008 à 23:17
21 août 2008 à 23:17
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...
Je n'ai pas XP pour l'instant, rappelle-moi quelles sont ces options et je te dirai laquelle décocher...
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!
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!
Raymond PENTIER
Messages postés
58760
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
17 252
2 sept. 2010 à 16:27
2 sept. 2010 à 16:27
... et si tu ajoutais
EnableAutoFilter
UserInterfaceOnly
EnableOutlining
?
EnableAutoFilter
UserInterfaceOnly
EnableOutlining
?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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
@ 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
LatelyGeek
Messages postés
1758
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
5 janvier 2023
550
22 août 2008 à 10:11
22 août 2008 à 10:11
Bon, dommage, c'était une piste...
Raymond PENTIER
Messages postés
58760
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
17 252
22 août 2008 à 15:25
22 août 2008 à 15:25
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.
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
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
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...
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...
Raymond PENTIER
Messages postés
58760
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
17 252
2 sept. 2010 à 16:57
2 sept. 2010 à 16:57
Moi non plus ; j'ai juste relu le post https://forums.commentcamarche.net/forum/affich-8003320-grouper-dissocier-sur-une-feuille-proteger#5
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...
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...
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
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
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.
é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.
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
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
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.
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.
Créer une macro et écrire tout simplement dans le corps de la subroutine
ActiveSheet.Unprotect
et affecter un bouton à cette macro.
ActiveSheet.Unprotect
et affecter un bouton à cette macro.
Raymond PENTIER
Messages postés
58760
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
17 252
22 août 2008 à 05:54
22 août 2008 à 05:54
"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.
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.
Raymond PENTIER
Messages postés
58760
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
17 252
8 déc. 2011 à 18:42
8 déc. 2011 à 18:42
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 ...
4 déc. 2009 à 15:13
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
17 août 2010 à 14:55
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
17 août 2010 à 14:59
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+
Modifié par max le 5/12/2011 à 13:46
17 sept. 2014 à 16:11