KutoolsforOffice — Une solution unique, cinq outils puissants.Faire plus avec moins d'efforts.Soldes de mars : 20 % de réduction

Comment regrouper et dissocier des lignes dans une feuille de calcul protégée ?

AuteurXiaoyang Date de modification

Comme chacun le sait, dès qu’une feuille de calcul Excel est protégée, de nombreuses restrictions limitent les actions que les utilisateurs peuvent effectuer. Ainsi, l’activation ou la désactivation des groupes de données — via la fonctionnalité de plan d’Excel permettant de développer ou réduire ces groupes — est généralement désactivée par défaut sur une feuille protégée. Cette limitation devient particulièrement problématique lorsque vous souhaitez autoriser certains utilisateurs à organiser ou explorer les données grâce au regroupement, tout en maintenant la protection d’autres éléments contre toute modification non souhaitée. Il est donc essentiel de savoir comment permettre le regroupement et le dégroupement sans affaiblir la sécurité de la feuille, afin de préserver à la fois l’intégrité des données et leur facilité d’utilisation.

Regrouper et dissocier des lignes dans une feuille de calcul protégée à l’aide d’un code VBA


flèche bleue vers la droite dans une bulle Regrouper et dissocier des lignes dans une feuille de calcul protégée à l’aide d’un code VBA

Il est courant que les fonctions de regroupement et de dégroupement ne soient pas accessibles lorsqu’une feuille de calcul est protégée. Une solution fiable consiste à utiliser un code VBA, qui vous permet d’activer programmatiquement les fonctions de plan tout en conservant la protection de la feuille. Cette approche convient si vous êtes à l’aise avec les macros ou si les politiques de votre organisation autorisent l’utilisation de code VBA. Notez toutefois que les solutions VBA nécessitent généralement des classeurs prenant en charge les macros ().xlsm) et ne doivent pas être utilisées si les macros sont désactivées dans votre environnement, ni si vous souhaitez éviter les alertes de sécurité potentielles à l’ouverture des fichiers.

1. Activez la feuille de calcul sur laquelle vous souhaitez activer le regroupement et le dégroupement. Vérifiez qu’elle n’est pas protégée : si c’est le cas, cette méthode ne fonctionnera pas. Le cas échéant, commencez par utiliser la commande Révision > Déprotéger la feuille.

2. Ensuite, appuyez sur ALT + F11 pour ouvrir l’éditeur Microsoft Visual Basic pour Applications.

3. Dans l’éditeur VBA, cliquez sur Insertion > Module, puis collez le code suivant dans la nouvelle fenêtre du module. Veillez à coller le code exactement tel quel pour qu’il fonctionne correctement.

Code VBA : regrouper et dissocier des lignes dans une feuille de calcul protégée

Sub EnableOutlining()
'Updateby Extendoffice
Dim xWs As Worksheet
Set xWs = Application.ActiveSheet
Dim xPws As String
xPws = Application.InputBox("Password:", xTitleId, "", Type:=2)
xWs.Protect Password:=xPws, Userinterfaceonly:=True
xWs.EnableOutlining = True
End Sub

Ce code active la protection de la feuille de calcul tout en permettant les fonctions de développement et de réduction des lignes ou colonnes regroupées. Il vous invite à définir un mot de passe de protection — veillez à bien le retenir, car vous en aurez besoin par la suite pour déprotéger la feuille. Si jamais vous l’oubliez, il se peut que vous ne puissiez pas déverrouiller la feuille sans recourir à des méthodes avancées de récupération.

4. Appuyez sur F5 pour exécuter le code. Une invite s’affiche alors pour vous demander de définir le mot de passe de protection de la feuille. Saisissez le mot de passe souhaité et cliquez sur OK. Voir la capture d’écran ci-dessous :

groupe dans une feuille protégée avec du code VBA

5. Cliquez sur OK après avoir saisi votre mot de passe. Votre feuille de calcul est désormais protégée, mais vous et les autres utilisateurs pouvez toujours développer et réduire les groupes à l’aide des symboles plus et moins situés à gauche de la feuille, comme illustré dans la capture d’écran :

groupe dans une feuille protégée comme à l'accoutumée lors de l'exécution du code VBA

Conseils et précautions :

  • Si la feuille de calcul est déjà protégée, le code ne s’exécutera pas — pensez toujours à la déprotéger au préalable.
  • La protection basée sur VBA s’avère efficace dans des scénarios avancés, mais elle n’est pas adaptée aux environnements où les macros sont restreintes ni aux utilisateurs peu familiers avec VBA.
  • Lorsque vous partagez un classeur compatible avec les macros, n’oubliez pas de rappeler aux destinataires d’activer les macros afin que ces fonctions soient pleinement opérationnelles.

Avantages : Cette méthode offre une grande flexibilité pour automatiser le processus de protection et personnaliser les actions autorisées.

Limitations : Les macros doivent être activées, mais tous les utilisateurs ou organisations n’autorisent pas l’utilisation de VBA pour des raisons de sécurité.

Si vous rencontrez des erreurs ou si la fonction de regroupement ne fonctionne pas comme prévu après l’exécution de la macro, vérifiez attentivement les points suivants :

  • La feuille de calcul a été déprotégée avant l’exécution de la macro.
  • Les symboles de plan (plus/moins) avaient déjà été créés via Données > Grouper avant la protection.
  • Vous avez saisi le mot de passe correctement lors de l’invite, ou essayez un mot de passe plus simple à des fins de dépannage.
  • Vos paramètres de macro dans Excel autorisent l’exécution de code VBA.
Si les problèmes persistent, envisagez les méthodes alternatives ci-dessous, spécialement conçues pour les utilisateurs qui préfèrent ne pas utiliser de macros.