Protection cellules par macro

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 !

laplayast

XLDnaute Occasionnel
Bonjour,
Voici,le code que j'ai enregistré pour créer la macro de protection,mais il est inopérant sur les cellules;et je ne sais pas pourquoi?.
Le résultat c'est que toute les cellules sont protégés;et je souhaite simplement écrire sur celles qui sont entre les parenthèses de RANGE.
Merci de votre aide.
Laplayast.

Sub Macro5()
'
' Macro5 Macro
' Range("B3:B4,B8,C20,D3,D8,D11😀16,E11:E12,E15:E16,F3,F11,F18,F20").Select
Range("F20").Activate
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub
 
Re : Protection cellules par macro

Bonjour laplayast

essaye ainsi, si j'ai bien compris :

Code:
Range("B3:B4,B8,C20,D3,D8,D11,D16,E11:E12,E15:E16, F3,F11,F18,F20").Locked = False
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True

lorsque tu protéges une feuille, il faut dévérouiller les cellule dans lesquelles tu veux pouvoir intervenir.

bonne fin d'après midi
@+
 
Re : Protection cellules par macro

Salut,

Il faut commencer par deproteger la feuille au cas ou.
de proteger les cellules que tu veux
et enfin reproteger ta feuille

Code:
Sub Macro5()
'
' Macro5 Macro
    With ActiveSheet
        .Unprotect
        .Cells.Locked = true
        .Range("B3:B4,B8,C20,D3,D8,D1116,E11:E12,E15:E16, F3,F11,F18,F20").Locked = false
        .Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
    End With
End Sub
++
Minick
 
Dernière édition:
Re : Protection cellules par macro

Bonsoir,
Malgre,plusieurs essais je n'arrive pas à verrouiller les cellules vertes.Il m'est impossible d'ecrire dans celles-ci.Je joint un extrait du fichier.
Je souhaite pouvoir écrire dans les cellules vertes.
Merci de votre aide.
Mot de passe=toto
laplayast.
 

Pièces jointes

Re : Protection cellules par macro

Bonsoir laplayast, Minick, Pierrot queje salue,

Exemple de cellules vertes : B24, ou H24, elles ne sont pas répertoriées dans ton code, c'est normal que cela ne fonctionne pas. Pas répertoriées donc impossibilité d'écrire..

Pas compris le mot de passe......

Préciser ta demande. Merci.

Bonne soirée.

Jean-Pierre
 
Re : Protection cellules par macro

Bonsoir,
Dans le module ThisWorkBook
Code:
Private Sub Workbook_Open()
    With Sheets("essai")
        .Unprotect password:="toto"
        .Cells.Locked = True
        .Range("B3:B4,B8,B24:B32,C20,D3,D8,D11,D16,D32,E11:E12,E15:E16,F3,F11,F18,F20").Locked = False
        .Protect password:="toto"
    End With
End Sub
Enregistre le fichier, ferme le puis réouvre le
A+
kjin
 
Re : Protection cellules par macro

Bonsoir,
J'ai,testé le verrouillage sur différentes plages de cellules verte,c'est pour cela que j'ai laisse une partie de la feuille.
Je souhaiterai que quelqu'un fasse un essai de verrouillage;et voir le résultat obtenu.
Merci.
laplayast.
 
Re : Protection cellules par macro

Re-,

et de plus...

j'avais fourni une possibilité...

Code:
Cells.SpecialCells(xlCellTypeAllFormatConditions).Locked = False

Regarde dans les posts précédents.....

A fortiori, tu ne travailles que dans les cellules contenant des Formats conditionnels....

Bref, bonne soirée
 
Re : Protection cellules par macro

bonsoir,
Je viens de tester sur le fichier,cela fonctionne avec le code seul en VBA.Mais quand je rajoute le reste des codes,j'ai une boite qui dit "nom ambigu detecté"
Je joins le code en entier,afin que l'on puisse le corriger.
Merci de votre aide.
laplayast
 

Pièces jointes

Re : Protection cellules par macro

Bonsoir,

un fichier peut avoir plusieurs évènements....

Mais, chaque évènement ne peut être qu'unique....

Dans ton fichier, tu as deux évènements "Open"

......

Essaie ainsi : (je n'ai pas testé....)

Code:
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
If ActiveSheet.Index < Sh.Index Then Exit Sub
If Sh.Cells.SpecialCells(xlCellTypeAllFormatConditions).Count = 0 Then Exit Sub
With Application
    .EnableEvents = False
    If .CountA(Sh.Cells.SpecialCells(xlCellTypeAllFormatConditions)) <> _
        Sh.Cells.SpecialCells(xlCellTypeAllFormatConditions).Count Then
        Sh.Activate
        MsgBox "Faut tout remplir, mon gars!"
    End If
    .EnableEvents = True
End With
End Sub

Private Sub Workbook_Open()
For Each Sh In Sheets
    Sh.Protect userInterfaceOnly:=True
Next Sh
With Sheets("essai")
    .Unprotect Password:="toto"
    .Cells.Locked = True
    .Range("B3:B4,B8,B24:B32,C20,D3,D8,D11:D16,D32,E11:E12,E15:E16,F3,F11,F18,F20").Locked = False
    .Protect Password:="toto"
End With
End Sub
 
Re : Protection cellules par macro

Bonjour,
Le fichier fonctionne,mais quand j'ajoute une autre feuille à protéger j'ai un message"erreur de compilation"next sans for.
Info:Toutes les cellules ont une mise en forme conditionnelle.
Merci de votre aide.
laplayast.
Je joins le code:

Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
If ActiveSheet.Index < Sh.Index Then Exit Sub
If Sh.Cells.SpecialCells(xlCellTypeAllFormatConditions).Count = 0 Then Exit Sub
With Application
.EnableEvents = False
If .CountA(Sh.Cells.SpecialCells(xlCellTypeAllFormatConditions)) <> _
Sh.Cells.SpecialCells(xlCellTypeAllFormatConditions).Count Then
Sh.Activate
MsgBox "Faut tout remplir, mon gars!"
End If
.EnableEvents = True
End With
End Sub

Private Sub Workbook_Open()
For Each Sh In Sheets
Sh.Protect userInterfaceOnly:=True
Next Sh
With Sheets("feuille1")
.Unprotect Password:="toto"
.Cells.Locked = True
.Range("B3:B4,B8,B24:B44,B64:B73,C20,C56:C57,C59:C61,D3,D8,D11😀16,D32😀33,D66😀73,E11:E12,E15:E16,E34:E36,E38:E39,E42,E47,E49,E51,E57,E59:E61,F3,F11,F18,F20,F33,F66:F73,G34:G36,G38:G39,G42,H24:H44,H47,H49,H51,H54:H61,H64:H73").Locked = False
.Protect Password:="toto"
Next Sh---ZONE D'ERREUR
With Sheets("feuille2")
.Unprotect Password:="toto"
.Cells.Locked = True
.Range("B4:B5,B8,B25:B46,B56,C31,D4,D8,D11😀16,D20,D22,D29😀30,D34,D41😀43,D49,D51,D53,E11:E12,,F4,F11:F12,F22,F29:F30,F34,F43,F56,G25:G46,G49,G51,G53").Locked = False
.Protect Password:="toto"
End With
End Sub
 
Re : Protection cellules par macro

Bonjour,
Remplace "Next sh" par "End With" !
primo : un code bien ordonné permet de repérer les erreurs
deusio : utilise les balises # (Code) pour écrire tes macros dans tes messages
A+
kjin
 
- 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
2
Affichages
660
Réponses
19
Affichages
2 K
Réponses
17
Affichages
2 K
Réponses
2
Affichages
753
Réponses
4
Affichages
1 K
Réponses
4
Affichages
2 K
Retour