Protection Excel - Grouper Dissocier

ECO.D

XLDnaute Nouveau
Bonjour à toutes et à tous!

J'aurais besoin de vos compétences concernant un problème de protection de feuilles excel.
Voila afin d'éviter les erreurs j'ai décider de mettre en place une protection sur une base de donnée excel que j'ai créée pour mon entreprise. En réalisant cette protection servira juste à ne pas modifier les cellules dîtes verrouillées rien de plus. Mais voila, diverses colonnes sont "groupée" et donc avec la protection il est impossible à l'utilisateur de les "dissocier".
J'ai trouvé un code VBA sur le net que voici pour régler le problème :
Private Sub Workbook_Open()
With Worksheets("Feuil1")
.EnableAutoFilter = True
.EnableOutlining = True
.Protect Contents:=True, Password:="Toto", UserInterfaceOnly:=True
End With
End Sub


Le soucis est que d'une je dois appliquer ce code à toutes mes feuilles... et de plus il me fait sauter tous mes privilèges utilisateurs... Je m'explique :
Lors de la protection d'une feuille excel on vous demande de communiquer ce que vous autoriser aux utilisateurs de faire :
  • Sélectionner les cellules verrouillées
  • Sélectionner les cellules déverrouillées
  • Format de cellule
  • Format de colonnes
  • Format de ligne
  • Insérer des colonnes
  • Insérer des lignes
  • Insérer des liens hypertextes
  • Supprimer des colonnes
  • Supprimer des lignes
  • Tri
  • Utiliser le filtre automatique
  • Utiliser les tableaux croisés dyn
  • Modifier les objets
  • Modifier les scénarios

Mais voila, lors de l'activation du code VBA cité précédemment tous ces privilèges ne sont plus cochés.
Voici ceux que j'aimerais cocher :
  • Sélectionner les cellules verrouillées
  • Sélectionner les cellules déverrouillées
  • Format de cellule
  • Format de colonnes
  • Format de ligne
  • Insérer des colonnes
  • Insérer des lignes
  • Insérer des liens hypertextes
  • Supprimer des colonnes
  • Supprimer des lignes


En espérant avoir été assez concis ^^ Je vous remercie d'avance pour vos réponses.
Bien cordialement.

DANEL Valentin
Économiste de la Construction.
 

Roland_M

XLDnaute Barbatruc
Re : Protection Excel - Grouper Dissocier

bonjour,

si cela peut aider !?

Code:
Sub Macro1() 
'choix:
'Sélectionner les cellules verrouillées
'Sélectionner les cellules déverrouillées !?!
'Format de cellule
'Format de colonnes
'Format de ligne
'Insérer des colonnes
'Insérer des lignes
'Insérer des liens hypertextes
'Supprimer des colonnes
'Supprimer des ligne

Dim Sh As Worksheet
PassW$ = "toto" '<< VOIR CODE PERSO !?! ET PLUS BAS ######

' protect
For Each Sh In ThisWorkbook.Worksheets
 Sh.Protect Password:=PassW$, DrawingObjects:=False, Contents:=True, Scenarios:=True, UserInterfaceOnly:=True, _
    AllowFormattingCells:=True, AllowFormattingColumns:=True, AllowFormattingRows:=True, _
    AllowInsertingColumns:=True, AllowInsertingRows:=True, AllowInsertingHyperlinks:=True, _
    AllowDeletingColumns:=True, AllowDeletingRows:=True, _
    AllowSorting:=False, AllowFiltering:=False, AllowUsingPivotTables:=False

    ActiveSheet.EnableSelection = xlNoRestrictions '< ICI VOIR CHOIX PERSO AVEC CI-DESSOUS ######
    'xlNoRestrictions permet la sélection de n'importe quelle cellule
    'xlNoSelection    empêche toute sélection dans la feuille
    'xlUnlockedCells  ne permet que la sélection des cellules dont la propriété Locked est False
Next

' deprotect
For Each Sh In ThisWorkbook.Worksheets: Sh.Unprotect Password:=PassW$: Next

End Sub
 

ECO.D

XLDnaute Nouveau
Re : Protection Excel - Grouper Dissocier

Alors,

N'ayant aucune erreur en lançant la macro j'ai bien espéré que cela fonctionne cependant voila, la macro ne fonctionne pas.
Voici mes test :

Une fois la macro enregistrée :
1. Exécution de la macro => Les feuilles de mon classeur ne sont pas protégées.
2. Protection manuelle des feuilles et lancement de la macro => La macro annule ma protection.
 

Roland_M

XLDnaute Barbatruc
Re : Protection Excel - Grouper Dissocier

re

attention !!!

j'ai mis un exemple qui n'est pas a utiliser directement !!!

il ne faut pas l'utiliser tel quel !

exemple ceci ne doit pas rester là ! car forcément ça annule le code précédent !
' deprotect
For Each Sh In ThisWorkbook.Worksheets: Sh.Unprotect Password:=PassW$: Next

je pensais que tu connaissais un peu le vba et que tu l'aurais compris !?
j'ai donc simplement mis du code à disposition pour faire tes essais mais pas à lancer la macro en l'état !


tu prends dans ta macro perso le début de la macro et ensuite je t'ai mis l'exemple pour déprotéger tes feuilles
que tu utiliseras où tu veux ! en n'oubliant pas de remettre chaque fois Dim Sh ...
 
Dernière édition:

ECO.D

XLDnaute Nouveau
Re : Protection Excel - Grouper Dissocier

Ha non je n'y connais rien désolé du quiproquo!
Alors, les codes fonctionnent parfaitement!
Je lance mon code VBA puis ma macro! La protection appliqué est parfaite!
Seulement, comment puis-je faire pour lancer ces deux codes à l'ouverture du fichier? Il est à noter que les futurs utilisateurs ne connaissent sans doute nullement le terme "macro". Sachant que d'après mes test, le VBA doit être lancé avant la macro.
 

Roland_M

XLDnaute Barbatruc
Re : Protection Excel - Grouper Dissocier

re

le problème est que je ne saurais pas t'expliquer comme ça sans plus de détails !?

il faudrait avoir le classeur avec une doc explicative du déroulement souhaité !
quand protéger(avec le code) et quand déprotéger !?
 

Roland_M

XLDnaute Barbatruc
Re : Protection Excel - Grouper Dissocier

re

exemple si c'est à l'ouverture du classeur !?

Code:
Private Sub Workbook_Open() '!!! VOIR A COMPLETER ICI> ######
'Sélectionner les cellules verrouillées
'Format de cellule
'Format de colonnes
'Format de ligne
'Insérer des colonnes
'Insérer des lignes
'Insérer des liens hypertextes
'Supprimer des colonnes
'Supprimer des ligne

Dim Sh As Worksheet, PassW$
PassW$ = "toto" '< VOIR CODE PERSO ######
On Error Resume Next
For Each Sh In ThisWorkbook.Worksheets
   Sh.Unprotect Password:=PassW$ 'd'abord déprotect
   Sh.EnableAutoFilter = True
   Sh.EnableOutlining = True
   Sh.Protect Password:=PassW$, DrawingObjects:=False, Contents:=True, Scenarios:=True, UserInterfaceOnly:=True, _
      AllowFormattingCells:=True, AllowFormattingColumns:=True, AllowFormattingRows:=True, _
      AllowInsertingColumns:=True, AllowInsertingRows:=True, AllowInsertingHyperlinks:=True, _
      AllowDeletingColumns:=True, AllowDeletingRows:=True, _
      AllowSorting:=False, AllowFiltering:=False, AllowUsingPivotTables:=False

   Sh.EnableSelection = xlNoRestrictions '< VOIR CHOIX AVEC CI-DESSOUS ######
     'xlNoRestrictions permet la sélection de n'importe quelle cellule
     'xlNoSelection    empêche toute sélection dans la feuille
     'xlUnlockedCells  ne permet que la sélection des cellules dont la propriété Locked est False
Next
On Error GoTo 0: Err.Clear
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 082
Messages
2 085 170
Membres
102 804
dernier inscrit
edaguo