Verrouille cellules non vide EXCEL 2016

Résolu
supupoff Messages postés 350 Statut Membre -  
supupoff Messages postés 350 Statut Membre -
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
La chance aide parfois, le travail toujours.

1 réponse

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

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

    Pourquoi ce verrouillage?
    1
    1. supupoff Messages postés 350 Statut Membre 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
      1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717 > supupoff Messages postés 350 Statut Membre
         
        Re,
        Ok.
        non vide dans feuille actif
        Votre code balaie toutes les feuilles.

        Pouvez repondre a la deuxieme question?
        0
      2. supupoff Messages postés 350 Statut Membre 34 > f894009 Messages postés 17417 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
      3. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717 > supupoff Messages postés 350 Statut Membre
         
        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
      4. supupoff Messages postés 350 Statut Membre 34 > f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention  
         
        Toujours long ou pas? : no n'est pas long

        Merci beaucoup sa marche bien
        0