Protéger et verouiller une plage de cellules via macro (fichier excel partagé)

  • Initiateur de la discussion Initiateur de la discussion hyp-axa
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

hyp-axa

XLDnaute Nouveau
Bonjour,

Je dispose d'un fichier partagé composé de plusieurs feuilles et je souhaite verouiller une plage de cellules et ensuite protéger toute la feuille par un mot de passe, et tout cela via une macro.

Vu que le fichier est composé de plusieurs feuilles, j'aimerai bien avoir la main sur le choix de la feuille ( Menu déroulant dans une cellule donnée) où je veux lancer la macro.

Je vous remercie à l'avance pour votre aide.

Cdt,
Mohammed
 
Re : Protéger et verouiller une plage de cellules via macro (fichier excel partagé)

Bonjour Mohammed

Voici deux macros répondants au besoin, à vous de reparamètrer les variables :

Code:
Sub Liste_a_remplir()
Dim formule As String
'1re étape :
'ajouter la liste des feuilles :
For Each feuille In Worksheets
formule = formule & ";" & feuille.Name
Next
'oter le ; en trop
formule = Right(formule, Len(formule) - 1)
feuille_choix = "Feuil1"
'ajouter à la cellule A1 la liste de validation :
    With Sheets(feuille_choix).Cells(1, 1).Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:=formule
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
    End With
    
End Sub
Sub Securiser()
feuille_choix = "Feuil1"
reference_ok = False
'2e étape :
'sécurisé la feuille choisie
feuille_choisie = Sheets(feuille_choix).Cells(1, 1).Value

'si la cellule A1 est vide : fin
If feuille_choisie = "" Then End

'si la cellule A1 ne fait pas référence à une feuille (cas possible en cas de changement de nom d'une feuille) : msg
For Each feuille_comparaison In Worksheets
    If feuille_comparaison.Name = feuille_choisie Then reference_ok = True
Next
If reference_ok = False Then
    MsgBox "Feuille introuvable", vbCritical
    End
End If

'vérrouiller la feuille
    Worksheets(feuille_choisie).Protect "MdP", DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub

Bien cordialement
Olivier
 
Re : Protéger et verouiller une plage de cellules via macro (fichier excel partagé)

Pour le besoin de vérouillage de cellule, vous voulez permettre l'accès à certaine cellule ? mais sou quel condition, et lequelles (comment sont-elles définies) ?
 
Re : Protéger et verouiller une plage de cellules via macro (fichier excel partagé)

Merci Bcp Olivier pour 'interet que tu as accordé à mon pb.
Je viens de tester les deux macros et j'ai quelques pbs :

1ere macro, il faut que je la lance autant de fois que de liste dans le classeur pour le menu déroulant soit bient fait.

2éme macro : une fois que je partage le fichier avec d'autres utilisateurs, en la lancant j'ai un message d'erreur 400


En PJ mon fichier exemple

Merci bcp

Cdt,
Simo
 

Pièces jointes

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
17
Affichages
322
Réponses
7
Affichages
353
Retour