Autoriser des focntions aux utilisateurs sur un fichier protégé

Remi2236 Messages postés 86 Date d'inscription jeudi 10 septembre 2015 Statut Membre Dernière intervention 22 mai 2024 - Modifié le 18 nov. 2021 à 14:10
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 - 19 nov. 2021 à 00:04
Bonjour,

J’ai un problème sur un fichier Excel que je n’arrive pas à résoudre.

J’ai un fichier Excel où chaque feuille est protégée par un mot de passe (mis via l’onglet « révision » / « protéger la feuille »). Le but étant que les utilisateurs :

• Sur les feuilles « MENU » et « Accueil » :
- Ne puissent pas modifier ou supprimer quoi que ce soit sans enlever le mot de passe dans « révision »

• Sur la feuille « Synthèse » :
- Ne puissent pas modifier les titres des colonnes (A1 :FJ1) et des lignes (A1 :C229)
- Ne puissent pas supprimer les colonnes et les lignes
- Ne puissent pas effectuer de copier/coller
- Qu’ils puissent insérer des liens hypertextes dans les cellules sur la plage D2 :FJ229
- Qu’ils puissent effectuer des filtres/tri parmi les cellules sur la plage D2 :FJ229 via les filtres des cellules D1 :FJ1

J’ai effectué dans le ThisWorkBook sur VBA ce code :

Private Sub Workbook_Open()
    Worksheets("Synthèse").Protect Password:="Eludril33", DrawingObjects:=True, Contents:=True, Scenarios:=True, UserInterfaceOnly:=True
    Worksheets("MENUS").Protect Password:="Eludril33", DrawingObjects:=True, Contents:=True, Scenarios:=True, UserInterfaceOnly:=True
    Worksheets("Accueil").Protect Password:="Eludril33", DrawingObjects:=True, Contents:=True, Scenarios:=True, UserInterfaceOnly:=True
    Application.DisplayAlerts = False
    With Worksheets("Synthèse")

        Range("D1:FJ1").Locked = False
        If Worksheets("Synthèse ").Protection.AllowFiltering = False Then
        Worksheets("Synthèse ").Protect AllowFiltering:=True
        End If
        
        Range("D2:FJ2000").Locked = False
        If Worksheets("Synthèse ").Protection.AllowInsertingHyperlinks = False Then
        Worksheets("Synthèse ").Protect AllowInsertingHyperlinks:=True
        End If
        
        .EnableAutoFilter = True
        Application.CutCopyMode = False
        Application.CellDragAndDrop = False
        .EnableOutlining = True
        .Protect Contents:=True, UserInterfaceOnly:=True
        
    End With
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    ThisWorkbook.Save
    Worksheets("Synthèse ").Protect Password:="Eludril33", DrawingObjects:=True, Contents:=True, Scenarios:=True, UserInterfaceOnly:=True
    Worksheets("MENUS").Protect Password:="Eludril33", DrawingObjects:=True, Contents:=True, Scenarios:=True, UserInterfaceOnly:=True
    Worksheets("Accueil").Protect Password:="Eludril33", DrawingObjects:=True, Contents:=True, Scenarios:=True, UserInterfaceOnly:=True
End Sub

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Application.CutCopyMode = False
Application.CellDragAndDrop = False
End Sub

Tout fonctionne sauf la possibilité d’insérer des liens hypertexte dans les cellules D2 :FJ229, et je peux utiliser les filtres sur les cellules entre D1 :FJ229 mais le filtre ne s’applique pas sur les cellules sur D2 :FJ229, tout reste figé sans se filter.

J’ai également mis dans la feuille « Synthèse » le code suivant :

Private Sub Worksheet_Activate()
    ActiveSheet.Protect Password:="Eludril33", DrawingObjects:=True, Contents:=True, Scenarios:=True, UserInterfaceOnly:=True
    ActiveSheet.EnableSelection = xlUnlockedCells
End Sub
Sub StopDeleteRowCols()
    Dim xBarControl As CommandBarControl
        For Each xBarControl In Application.CommandBars.FindControls(ID:=293)
        xBarControl.Enabled = False
    Next
        For Each xBarControl In Application.CommandBars.FindControls(ID:=294)
        xBarControl.Enabled = False
    Next
End Sub
A voir également:

2 réponses

Raymond PENTIER Messages postés 58947 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 15 mai 2025 17 319
18 nov. 2021 à 15:07
Bonjour.

Je suis nul en VBA, et je ne saurais commenter ta macro ...
Je m'interroge seulement sur l'utilité de ta première demande :
" Sur les feuilles « MENU » et « Accueil » : - Ne puissent pas modifier ou supprimer quoi que ce soit sans enlever le mot de passe dans « révision » "
puisque c'est justement ce à quoi servent l'outil "Protéger la feuille" et le mot de passe !!!
0
Remi2236 Messages postés 86 Date d'inscription jeudi 10 septembre 2015 Statut Membre Dernière intervention 22 mai 2024 1
18 nov. 2021 à 18:15
Bonjour,
Pas de souci, merci tout de même pour votre reponse.
Cdlt
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 263
Modifié le 19 nov. 2021 à 00:07
Bonjour,

D2 :FJ229 sont déverrouillées ?
Quel message ou pb quand tu y mets un lien ?
eric

0