Verrouille cellules non vide EXCEL 2016

Résolu/Fermé
supupoff Messages postés 312 Date d'inscription dimanche 27 novembre 2011 Statut Membre Dernière intervention 8 janvier 2021 - Modifié le 4 sept. 2020 à 14:44
supupoff Messages postés 312 Date d'inscription dimanche 27 novembre 2011 Statut Membre Dernière intervention 8 janvier 2021 - 4 sept. 2020 à 22:49
bonjour,

j'essayé de verrouille les cellules non vide dans feuille actif

 
Private Sub Workbook_BeforeClose(Cancel As Boolean)

For Each Sh In ThisWorkbook.Worksheets
Sh.Unprotect 34
For Each Cel In Sh.UsedRange.Cells
Cel.Locked = False
If Cel <> "" Then Cel.Locked = True
Next Cel
Sh.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True 'à toi de voir ce que tu protèges
Sh.EnableSelection = xlUnlockedCells

Sh.Protect 34
Next Sh
End Sub


alors que la fichier deviens très lent au fermeture lors de fermeture.
est ce que vous pouvez svp maider a rendre le verrouilage que sur une plage des cellules.

merci

1 réponse

f894009 Messages postés 17216 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 27 décembre 2024 1 711
4 sept. 2020 à 16:23
Bonjour,

verrouillage que sur une plage des cellules.
Que vous connaissez ou pas

Pourquoi ce verrouillage?
1
supupoff Messages postés 312 Date d'inscription dimanche 27 novembre 2011 Statut Membre Dernière intervention 8 janvier 2021 34
Modifié le 4 sept. 2020 à 16:43
Oui plage je la nommer "ps"
ben ceci mon essai


Private Sub Workbook_BeforeClose(Cancel As Boolean)
ActiveSheet.Unprotect 348610
Dim C As Variant
For Each C In Range("ps")
If C.Value <> "" And C.Locked = False Then
C.Locked = True
End If
Next
ActiveSheet.Protect 348610, DrawingObjects:=True, Contents:=True, _
Scenarios:=True
End Sub
t


mais si je oter la protection et re-vider les cellules dejas remplis reste verouille
0
f894009 Messages postés 17216 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 27 décembre 2024 1 711 > supupoff Messages postés 312 Date d'inscription dimanche 27 novembre 2011 Statut Membre Dernière intervention 8 janvier 2021
4 sept. 2020 à 16:41
Re,
Ok.
non vide dans feuille actif
Votre code balaie toutes les feuilles.

Pouvez repondre a la deuxieme question?
0
supupoff Messages postés 312 Date d'inscription dimanche 27 novembre 2011 Statut Membre Dernière intervention 8 janvier 2021 34 > f894009 Messages postés 17216 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 27 décembre 2024
Modifié le 4 sept. 2020 à 16:55
Pourquoi ce verrouillage? bon je veux que dans la plage "ps" si une cellule et remplis on peut pas le modifier apres la fermeture de fichier que si on ote la protection. et sa marche mais
mon probleme maintenant ce que si je oter la protection et vider quelque cellules et jenregistre et je fermer la fichier
la prochaine ouverture les cellules re-vider reste verouille

Merci


Private Sub Workbook_BeforeClose(Cancel As Boolean)
ActiveSheet.Unprotect 348610
Dim C As Variant
For Each C In Range("ps")
If C.Value <> "" And C.Locked = False Then
C.Locked = True
End If
Next
ActiveSheet.Protect 348610, DrawingObjects:=True, Contents:=True, _
Scenarios:=True
End Sub
0
f894009 Messages postés 17216 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 27 décembre 2024 1 711 > supupoff Messages postés 312 Date d'inscription dimanche 27 novembre 2011 Statut Membre Dernière intervention 8 janvier 2021
Modifié le 4 sept. 2020 à 17:53
Re,

Toujours long ou pas?

Cette Plage "ps" a combien de cellules?

Verrouillage de cellules non vides d'une plage

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    ActiveSheet.Unprotect 348610
    Range("ps").Locked = True
    Range("ps").SpecialCells(xlCellTypeBlanks).Locked = False
    ActiveSheet.Protect 348610, DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub
0
supupoff Messages postés 312 Date d'inscription dimanche 27 novembre 2011 Statut Membre Dernière intervention 8 janvier 2021 34 > f894009 Messages postés 17216 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 27 décembre 2024
4 sept. 2020 à 22:49
Toujours long ou pas? : no n'est pas long

Merci beaucoup sa marche bien
0