cs_hazzel
Messages postés20Date d'inscriptionjeudi 13 novembre 2008StatutMembreDernière intervention19 juillet 2013
-
14 nov. 2008 à 17:04
cs_hazzel
Messages postés20Date d'inscriptionjeudi 13 novembre 2008StatutMembreDernière intervention19 juillet 2013
-
19 nov. 2008 à 00:21
Bonjour à tous!
Voici mon problème :
Sur une feuille protégée je souhterai retirer la protection d'une plage de cellule tout en interdisant l'accès et l'écritures aux autres.
Voici ma macro :
'la feuille étant protégée via ActiveSheet.Protect
Mais aucunes des deux ne fonctionnent si je ne déprotège pas la feuille entièrement. Or si je retire cette protection, toutes les cellules sont vulnérable.
Merci de votre attention ^_^
ps : j'ai du passé 30min sur le net pour trouver une réponse mais aucune ne me correspondaient concrètement : /
A voir également:
[VBA / macro excel] déverrouillage de certaines cellules
dedenet2
Messages postés372Date d'inscriptionvendredi 27 juillet 2007StatutMembreDernière intervention22 juillet 20132 17 nov. 2008 à 19:15
Bonjoir ,
Un exemple
-------------------------------------------------------- 'Zone utilisée
Dim ZoneUtilisée As String
'Plage utilisée sur la feuille de Excel
ZoneUtilisée = "A1:M40"
'On deprotege la feuille par le mot de passe "SESAME"
Feuil1.Unprotect "SESAME"
'Deverrouilles toutes les cellules de la plage
Feuil1.Range(ZoneUtilisée).Locked = false
'Reprotege la feuille et bloque les cellules non autorisées par "SESAME"
Feuil1.Protect "SESAME"
--------------------------------------------------------- Attention , ça ne marche pas avec les cellules fusionnées.
Pour résumer , il faut deproteger la feuille , debloquer
les cellules pour autoriser l'écriture puis reproteger
la feuille.
Ceci est un exemple à exploiter..
Bonne chance !
A+
cs_hazzel
Messages postés20Date d'inscriptionjeudi 13 novembre 2008StatutMembreDernière intervention19 juillet 2013 17 nov. 2008 à 22:43
Salut, je te remerci pour ta réponse, en fait je ne savais pas qu'on pouvais retirer la protection de certaine cellule quand bien même toute la feuille est remis sous protection.
Ce ci étant, je voulais savoir comment reprotéger ces cellules une fois qu'elles sont remplis, je m'explique, lorsque l'utilisateur a rempli la cellule et qu'il passe à la suivante, cette cellule soit de nouveau sous protection?
dedenet2
Messages postés372Date d'inscriptionvendredi 27 juillet 2007StatutMembreDernière intervention22 juillet 20132 18 nov. 2008 à 19:15
Salut ,
Ce code verrouille les cellules non vides.
J'utilise la commande SpecialCells(xlCellTypeBlanks)
pour
trouver les cellules vides.
Ceci est un exemple qu'il faut adapter à ton code.
--------------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
'Zone utilisée
Dim ZoneUtilisée As String
'Plage utilisée sur la feuil1 de Excel
ZoneUtilisée = "A1:M40"
'On deprotege la feuille par le mot de passe "SESAME"
Feuil1.Unprotect "SESAME"
'Verrouilles toutes les cellules de la plage
Feuil1.Range(ZoneUtilisée).Locked = True
'Deverouilles les cellules vides de la plage
Feuil1.Range(ZoneUtilisée).SpecialCells (xlCellTypeBlanks).Locked = False
'Bloque la saisie des cellules non vides en protégeant la feuil1 par "SESAME"
Feuil1.Protect "SESAME"
cs_hazzel
Messages postés20Date d'inscriptionjeudi 13 novembre 2008StatutMembreDernière intervention19 juillet 2013 19 nov. 2008 à 00:21
Un grand merci! Tes conseils sont d'une aide précieuses!
Les macro que j'ai effectué fonctionnent à présent ^_^
Du moins en ce qui concerne l'automatisme des cellules qui se verrouille lorsqu'elles sont remplies, je l'ai remplacé par une macro qui reverrouille l'intégralité de la feuille. Bon ok ca devient du manuel là ; ) Mais je prends note de tes macros car cela me permet de mieux comprendre le VBA et de l'exploiter différement.