XL 2016 Option de verrouillage d'une feuille avec macro

Nico888

XLDnaute Nouveau
Bonjour à tous,
Meilleurs vœux pour cette nouvelle année.

J'ai un classeur avec plusieurs feuilles. J'utilise des macros pour créer de nouvelles données qui sont intégrées à des tableaux.
Ce classeur est partagé entre plusieurs utilisateurs, et pour éviter la suppression de formules, les feuilles sont verrouillées. Seules les cellules permettant la saisie sont autorisées en modification.
Pour que les macros fonctionnent, j'ai intégré au code la commande de déverrouillage au lancement et la commande de verrouillage à la fermeture.
Tout fonctionne, sauf que je verrouille la feuille via la macro, il n'y a plus de possibilité de trier ou filtrer les colonnes du tableau.
Le verrouillage manuel via le ruban permet de choisir les options de verrouillage, et je souhaiterais les appliquer dans la macro. Est-ce que c'est possible ?

Le fichier de test est en PJ

D'avance merci
Bonne journée
 

Pièces jointes

  • MOD_Plan-de-Charge_2022 - test.xlsm
    142.4 KB · Affichages: 4

Robert

XLDnaute Barbatruc
Bonjour Nico, bonjour le forum,
Tu as ce code dans le composant ThisWorkbook :

VB:
Private Sub Workbook_Open()
'Toujours ouvrir le classuer sur l'onglet Guide
    Sheets("Guide").Select
   
'Pour utiliser le "plan" dans les feuilles protégées
    Dim i As Integer
    For i = 9 To Worksheets.Count
        With Sheets(i)
            .EnableOutlining = True
            .Protect userInterfaceOnly:=True
        End With
    Next i
End Sub
qui devrait te permettre de pallier à ton problème. Mais tu boucles de 9 à 4 ?!... Par conséquent le Protect userInterfaceOnly:=True ne se fait pas. Remplace le 9 par 1 (ou 2 si tu ne le veux pas pour l'onglet Guide) et ça devrait aller mieux...
Sinon, si j'ai encore compris de travers, voici le code avec toutes les exceptions possibles à la protection :

Code:
    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
        False, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
        AllowDeletingRows:=True, AllowSorting:=True, AllowFiltering:=True, _
        AllowUsingPivotTables:=True
 
Dernière édition:

Nico888

XLDnaute Nouveau
Bonjour Robert,
Merci pour ta réponse rapide.
Et oui, j'avais oublié le code dans ThisWorkBook. En fait, j'ai "recyclé" ce classuer d'un ancien, qui était beaucoup plus complexe et n'était pas adapté. Je vais corriger et voir ce que ça donne.
Merci pour les exceptions de protection : c'est ce que je cherchais, mais je n'arrivais pa à les trouver.
Bonne journée
 

Robert

XLDnaute Barbatruc
Bonjour le fil, bonjour le forum,

Désolé aussi Phil, le temps que je réponde à Nico, nos fils se sont croisés et je navet pas vu ton excellente réponse... Je te rassure donc, pas de cape c'est juste moi qui ai de la m... aux yeux.
 

Discussions similaires

Statistiques des forums

Discussions
294 442
Messages
1 938 528
Membres
188 906
dernier inscrit
fars