Macro permettant de verouiller certaines cellules

Bonjour à tous,

Je suis nouveau sur ce forum.

Dans le cadre de mon travail, je dois créer des emplois du temps journaliers (je suis chef d'équipe dans une entreprise).

Pour me faciliter la tâche, j'ai déjà créé un classeur excel (chaque onglet correspond à un jour de la semaine) contenant une macro de masquage/demasquage de certaines lignes.

J'aimerais ajouter à cette macro une formule me permettant de protéger certaines cellules de mon classeur.

J'ai déjà effectué pas mal de recherches sur ce forum sans trouver la bonne formule.

Voici les 2 macros déjà présentes sur mon fichier excel :

Masquer les lignes :

Sub Masque_lig() ' masque les lignes ou la valeur dans les cellules de la colonne A sont =0

Range("a10:a56").Select

For Each cellule In Selection

If cellule.Value = "0" Then cellule.EntireRow.Hidden = True

Next cellule

End Sub

Démasquer les lignes :

Sub Demasque_lig() ' demasque les lignes ou la valeur dans les cellules de la colonne A sont =0

Range("a10:a52").Select

For Each cellule In Selection

If cellule.Value = "0" Then cellule.EntireRow.Hidden = False

Next cellule

End Sub

Listes des cellules à protéger e permanence:

B3; B4 ; C2 ; C4 ; A10:A55

Merci d'avance pour votre aide, à votre disposition pour plus d'informations.

Kévin

Bonjour et bon dimanche à toutes et à tous

une réponse similaire de Loureed

en cliquant ici

son message de Loureed merci à lui :

principe de verrouillage des cellules d'une feuille :

toutes les cellules par défaut sont "cochées" comme verrouillées, mais elles ne le seront que lorsque la feuille sera protégée !

Si sur une feuille protégée vous voulez pouvoir accéder et modifier des valeurs sur certaines cellules alors il faut décocher cette option sur ces cellules avant de protéger la feuille.

en VBA protéger une feuille sans mot de passe :

Activesheet.protect

déprotéger la feuille sans mot de passe :

Activesheet.unprotect

En fonction des coches de propriété des cellules elles seront protégées ou pas

Cocher / décocher cette option en VBA

Activecell.locked = true

Activecell.locked = false

Voilà à vous "de faire" le reste...

@ bientôt

LouReeD

Note :

cellule est une variable doit-on ou pas la déclarer ?

crdlt,

André

Merci pour votre réponse rapide.

Cependant, j'aimerais savoir à quel endroit dans ma macro dois-je insérer les lignes

"Activecell.locked = true"

"Activecell.locked = false"

J'ai essayé plusieurs solutions mais cela ne fonctionne pas...

Merci d'avance

Kévin

Bonjour à tous,

Je n'ai toujours pas réussi à résoudre mon problème.

Voici ce que j'ai tapé:

Sub Masque_lig() ' masque les lignes ou la valeur dans les cellules de la colonne A sont =0

Activesheet.Unprotect

Range("a10:a56").Select

For Each cellule In Selection

If cellule.Value = "0" Then cellule.EntireRow.Hidden = True

Activesheet.Protect

Next cellule

End Sub

Cela retire et remet la protection de TOUTE la feuille, et non seulement les cellules que je souhaite verouiller...

Merci de votre aide...

Kévin

Bonjour

pour avancer un peu, tu mets sur la feuille à protéger la ou les plages de tes cellules

j'ai trouvé ce bout de code :

' à mettre dans la feuille 'Feuil1' pour cet exemple) par contre il serai préférable de modifier ce code ci-dessous et supprimer le ict3 j'pense

pour l'instant je n'ai trouvé que cela, il doit y avoir plus simple

Private Sub Worksheet_Change(ByVal Target As Range)
Dim ict1, ict2, ict3 As Range

Set ict1 = Intersect(Target, Range("B3:B4"))
Set ict2 = Intersect(Target, Range("C3:C4"))
Set ict3 = Intersect(Target, Range("A10:A55"))
If ict1 Is Nothing And ict2 Is Nothing And ict3 Is Nothing Then Exit Sub
With Application
.EnableEvents = False
.Undo
.EnableEvents = True
End With
End Sub

crdlt,

André

Bonjour,

Listes des cellules à protéger e permanence:

B3; B4 ; C2 ; C4 ; A10:A55

Si c'est permanent quel est l'intérêt de le faire par macro ?

Fait-le manuellement.

Sélectionne toute ta feuille, déverrouille toutes les cellules, sélectionne celles à protéger pour les reverrouiller.

eric

Bonjour,

Listes des cellules à protéger e permanence:

B3; B4 ; C2 ; C4 ; A10:A55

Si c'est permanent quel est l'intérêt de le faire par macro ?

Fait-le manuellement.

Sélectionne toute ta feuille, déverrouille toutes les cellules, sélectionne celles à protéger pour les reverrouiller.

eric

J'ai bien sûr essayé cette solution.

Sauf que mes cellules à verrouiller sont concernées par la macro de masquage/demasquage des lignes. Cela ne fonctionne donc pas.

Bonjour toutes et tous

@Kevin77

merci de voir mon fichier ci-dessus stp,

les cellules B3,B4 C3,C4 sont protégées PERMANENTES de la feuille1 (code sur le worksheet de cette feuille)

@de a10 à a55 si les cellules sont à 0 de la colonne A de la feuil1 lignes retirées, voir reste à améliorer

EDIT : tester le fichier cache protege cellules4.xlsm

crdlt,

André

Rechercher des sujets similaires à "macro permettant verouiller certaines"