Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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: 6

Robert

XLDnaute Barbatruc
Repose en paix
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
 

Nico888

XLDnaute Nouveau
Re, bonjour Phil69970,
Je te demande de m'excuser, je n'avais pas vu ta réponse.
Ton retour, encore plus rapide que celui de Robert m'a échappé. Vraiment désolé.
C'est excatement ce que je cherchais.
Bonne journée
 

Robert

XLDnaute Barbatruc
Repose en paix
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.
 

Phil69970

XLDnaute Barbatruc
Re

@Robert :
Pas de problème car très souvent le site ne rafraichi pas ou mal la page et je réponds sans m'apercevoir qu'une réponse a déjà été donnée.
Ma réponse "d’invisibilité" était pour le demandeur mais il m'a rassuré avec le post #6

A bientôt sur un autre post

@Phil69970
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…