Autoriser la création de groupements de lignes sur une feuille protégée

Bonjour à tous,

Je travaille sur un fichier partagé et je souhaite le protéger pour éviter que les autres utilisateurs ne cassent des formules.

J'ai protégé le fichier, puis j'ai rencontré un premier problème qui est que les utilisateurs ne pouvaient pas grouper/dégrouper des groupements de colonnes que j'avais moi même créés. J'ai pu résoudre ce problème là avec une macro que vous trouverez ci-dessous.

Maintenant que cela est fait j'ai un nouveau problème qui est que j'aimerais qu'ils puissent eux mêmes créer/supprimer des groupements de lignes et de colonnes. J'ai cherché absolument partout sur internet sans rien trouver !

Auriez-vous des idées pour répondre à ce problème s'il vous plait ?

Merci d'avance pour toute l'aide que vous pourrez m'apporter

Manon

Le code, écrit dans ThisWorkbook :

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)

.Protect "PalomaBuying", Contents:=True, UserInterfaceOnly:=True, AllowFormattingCells:=True, AllowFormattingColumns:=True, AllowFormattingRows:=True, AllowSorting:=True, AllowFiltering:=True, AllowUsingPivotTables:=True

.EnableAutoFilter = True

.EnableOutlining = True

End With

Next I

End Sub

Bonjour et

Malheureusement la réponse est dans le problème lui-même !

Si une feuille est protégée l'utilisation des regroupements est interdite par Excel.

Tu as donc résolu ton problème par le code VBA que tu as développé.

Mais si la feuille est de nouveau protégée les regroupements redeviennent impossibles !

Une solution relativement complexe à mettre en œuvre pourrait consister à ne pas protéger ta feuille mais faire en sorte que les cellules contenant des données "à ne pas effacer" ou des formules soient "impossibles" à modifier...

J'ai dit complexe parce que je ne connais pas ton fichier, ni sa taille ou sa complexité. J'explique en gros la méthode :

Sur un évènement Change ou SelectionChange tu gères un code du genre

Si (laCelluleEnCours = uneDonnéeSensible) Ou (laCelluleEnCours = uneFormule) Alors

ne pas prendre en compte la modification effectuée (grâce à Undo par exemple)

Fin Si

Ou si il y a vraiment beaucoup de données à verrouiller/protéger en utilisant la même méthode tu peux utiliser un tableau contenant la liste des cellules verrouillées/protégées et le parcourir toujours dans une procédure évènementielle pour "défaire" toute modification faite. Mais cela comme je le disais plus haut est sujet à la taille (en volume) de tes données ! Et cela peut vite devenir très lent à l'usage.

Bonjour,

Merci beaucoup pour votre réponse !

Malheureusement je vais en rester là, j'espérais une solution avec juste une ligne de code à ajouter

Bonne journée !

Manon

Bonjour

J'ai peur de t'avoir fait peur avec le mot "compliqué" !

J'ai dit compliqué parce que je n'ai pas de vision sur le classeur et ne connais pas le nombre de données à traiter mais il n'y a pas en réalité rien de si "compliqué" dans la solution que j'au proposé. Deux ou trois lignes pas plus dans une procédure évènementielle pas plus couplées éventuellement à un tableau contenant les coordonnées des "données à protéger".

Relativement simple à mettre en œuvre en quelques lignes. Mais pas une seule ou par une fonction existante.

PS/ J'ai souvent développé ce genre de solution, car ton problème est relativement fréquent ! Crois-moi

Rechercher des sujets similaires à "autoriser creation groupements lignes feuille protegee"