Verrouille cellules non vide EXCEL 2016

Résolu
supupoff Messages postés 312 Date d'inscription   Statut Membre Dernière intervention   -  
supupoff Messages postés 312 Date d'inscription   Statut Membre Dernière intervention   -
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
A voir également:

1 réponse

f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
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   Statut Membre Dernière intervention   34
 
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 17277 Date d'inscription   Statut Membre Dernière intervention   1 713 > supupoff Messages postés 312 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   34 > f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention  
 
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 17277 Date d'inscription   Statut Membre Dernière intervention   1 713 > supupoff Messages postés 312 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   34 > f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention  
 
Toujours long ou pas? : no n'est pas long

Merci beaucoup sa marche bien
0