Microsoft 365 masquer colonne + MDP

l.et.lilou

XLDnaute Junior
Bonjour à tous,

J'essaie désespérément de trouver une solution sur les forums mais je n'y arrive pas. Peut-être pourriez vous m'aider ?

Mon classeur contient des colonnes que je voudrais masquer et verrouiller par un mot de passe : les colonnes W à DO.
Pour les cellules grisées, j'aimerais pouvoir continuer à saisir des données dessus ET pouvoir faire de la mise en forme ou ajouter des commentaires sans être bloqué par la protection du MDP.
Je vous ai mis les codes que j'ai testé mais ca me bloque l'intégralité de la feuille pour la mise en forme (mettre en couleur jaune une cellule...)

Pourriez vous me dire quel code vba faudrait il pour verrouiller des colonnes mais laisser libre d'autres cellules ?

pour info, le mot de passe dans ce fichier est "test2".

Merci à vous :)
 

Pièces jointes

  • Masquer colonne immo.xlsm
    88 KB · Affichages: 1

fanch55

XLDnaute Barbatruc
Bonjour, testez les codes suivants si cela correspond à votre demande :
VB:
Const MDP = "test2"
Sub Define_Lock()
' ------------------------------------------------------
'   A ne faire initialement qu'une fois (normalement) :
'       Verrouiller toutes les cellules
'   sauf celles qui sont dans la plage indiquée
' ------------------------------------------------------
    Dim L As Long
    With Worksheets("Immo")
        .Cells.Locked = True
        L = .Cells(Rows.Count, "H").End(xlUp).Row
        Union(.Range("B6:J" & L), .Range("L6:L" & L)).Locked = False
    End With
End Sub
Sub Masquer()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
   With Worksheets("Immo")
        .Activate
        .[X:DO].EntireColumn.Hidden = True
        .EnableOutlining = True
        .EnableSelection = xlUnlockedCells
        .Protect _
            Password:=MDP, _
            UserInterfaceOnly:=True, _
            DrawingObjects:=True, _
            Contents:=True, _
            Scenarios:=True, _
            AllowFormattingCells:=True, _
            AllowFormattingColumns:=True, _
            AllowFormattingRows:=True
    End With   
Application.Calculation = xlCalculationAutomatic       
End Sub
Sub Afficher()
    With Worksheets("Immo")
        .Unprotect MDP
        .[X:DO].EntireColumn.Hidden = False
    End With
End Sub
 

Discussions similaires

Réponses
5
Affichages
492
Compte Supprimé 979
C

Statistiques des forums

Discussions
312 826
Messages
2 092 515
Membres
105 439
dernier inscrit
Nassir