Utilisation du groupeur de lignes sur feuilles Excel protégées

Bonsoir à tous,

Je suis en train de créer un tableau Excel que je vais ensuite diffuser à mes collaborateurs. Afin de leur simplifier le travail d'analyse des données, j'ai utilisé la fonction Grouper (que l'on trouve dans la palette d'outils Données). Ils peuvent ainsi dérouler les lignes afin d'avoir accès aux détails de mes données.

Par contre, je ne souhaite pas que mes collègues puissent changer ou modifier les données contenues dans le tableau. Pour éviter cela, j'ai utilisé le bouton Protéger le classeur disponible dans la palette d'outils Révision.

Or, une fois l'onglet protégé, nous ne pouvons plus dérouler les onglets...

En fouillant sur le net, je suis tombé sur un forum où une personne proposait le code VBA suivant :

12test.xlsx (8.85 Ko)
1
2
3
4
5
6
7
8
Private Sub Workbook_Open()
  With Worksheets("Feuil1")
    .EnableAutoFilter = True
    .EnableOutlining = True
    .Protect Contents:=True, Password:="Toto", UserInterfaceOnly:=True
  End With

End Sub

J'ai recopié et adapter ce code à mes données sur ThisWorkbook dans le développeur, mais cela ne fonctionne pas

Auriez-vous une solution pour m'aider ?

Par avance merci,

Cordialement,

Hugo

P.S : je vous met en PJ un tableau bateau illustrant mon problème le MDP pour déprotéger la page est A.

Bonjour,

Fonctionnel chez moi.

Par contre, on peut se poser la question de l'utilisation d'un plan.

10test.xlsm (14.19 Ko)
Bonjour,

Le mode plan qui se déverrouille lors du workbook open ... Je vois pas trop l'intérêt du coup ...

Cldt,

Re,

@Ergotamine

Je n'ai pas ce souci !?

Cdlt.

Re Jean-Eric,

Pas de soucis dans la macro en elle même mais avec celle du premier post de l'auteur, j'ai du mal avec la logique. Mais je ne vois pas l'intérêt d'avoir une macro de ce type dans un Workbook_open. Si on groupe et protège à l'ouverture, quand est ce qu'on travaille dessus ? Quand il est fermé ? Du coup difficile de travailler.

Sinon il se fait tard et je n'ai pas compris la logique :)

Cdlt,

Re,

On va faire court.

Par contre, on peut se poser la question de l'utilisation d'un plan.

Bonsoir à tous,

Merci pour vos réponses.

Jean-Eric, en effet cela fonctionne sur votre document. Par contre, j'ai repris mon code de protection des onglets dans mon document et malheureusement cela ne marche toujours pas. Voici mon code complet :

Option Explicit

Private Sub Workbook_Open()
Worksheets("accueil").Activate
[_utilisateur] = "Invité"
Connecter


With Worksheets("IC - FRANCE")
.EnableAutoFilter = True
.EnableOutlining = True
.Protect Contents:=True, Password:="PDT", UserInterfaceOnly:=True
End With
With Worksheets("Sud Ouest")
.EnableAutoFilter = True
.EnableOutlining = True
.Protect Contents:=True, Password:="PDT", UserInterfaceOnly:=True
End With
With Worksheets("Nord Ouest")
.EnableAutoFilter = True
.EnableOutlining = True
.Protect Contents:=True, Password:="PDT", UserInterfaceOnly:=True
End With
With Worksheets("Est")
.EnableAutoFilter = True
.EnableOutlining = True
.Protect Contents:=True, Password:="PDT", UserInterfaceOnly:=True
End With

With Worksheets("IC - Monde")
.EnableAutoFilter = True
.EnableOutlining = True
.Protect Contents:=True, Password:="PDT", UserInterfaceOnly:=True
End With
With Worksheets("Esp - Pt")
.EnableAutoFilter = True
.EnableOutlining = True
.Protect Contents:=True, Password:="PDT", UserInterfaceOnly:=True
End With
With Worksheets("Est Europe")
.EnableAutoFilter = True
.EnableOutlining = True
.Protect Contents:=True, Password:="PDT", UserInterfaceOnly:=True
End With
With Worksheets("ROW")
.EnableAutoFilter = True
.EnableOutlining = True
.Protect Contents:=True, Password:="PDT", UserInterfaceOnly:=True
End With
End Sub

Je me demande si la raison de ce dysfonctionnement ne vient pas du fait que toutes mes fonctions utilisées sont dans un unique Private Sub. Pensez-vous que je doive pour chaque fonction ouvrir un nouveau Private Sub puis terminer avec un nouvel End Sub.

Par ailleurs, si vous vous posiez la question de l'utilité de ma demande, la réponse est simple. Je ne souhaite QUE transmettre les données à mes collaborateurs et je ne souhaite pas qu'ils puissent le modifier.

Pour ce qui est de l'utilisation d'un plan, je fois reconnaitre que je n'ai aucune idée de ce que vous entendez par plan, j'ai en effet recopié texto le code donné sur un forum...

Bonne fin de journée,

Cordialement,

Hugo

Bonsoir,

Mais si c'est juste pour modification pourquoi grouper/dégrouper et non pas juste utiliser la propriété .protect où tu boucles sur l'ensemble des worksheet de la collections worksheets ?

Ca allège ton code, qui devient alors plus compréhensible, et je pense, robuste. Il faut bien que tu définisses ton besoin avant de te lancer dans du VBA si tu ne souhaites pas t'égarer et perdre trop de temps.

Cdlt,

Rechercher des sujets similaires à "utilisation groupeur lignes feuilles protegees"