Protection de cellules

jeromear

XLDnaute Junior
Je reviens sur mon pb de protection de cellules :

Tant que le fichier reste ouvert tout va bien
Mais quand il est fermé puis réouvert les cellules verrouillées des feuilles se retrouvent protégées aussi.
Sur l'aide Vb dans "protect" on parle de UserInterfaceOnly
mais je ne sais pas comment appliquer cet argument

Est ce que quelqu'un connaît ce problème?




Code:
Sub EFFACER()
'
' EFFACER Macro
' Macro enregistrée le 14/01/2010 par JEROME
'


Dim cel As Range
Dim tablo, i As Byte
Application.ScreenUpdating = False
tablo = Array("COM1", "COM2", "COM3", "COM4", "COM5", "COM6", "COM7", "COM8", "COM9", "COM10") 'nombre de feuilles étudiées limité à 255, sinon => i As Integer
For i = 0 To UBound(tablo)
With Sheets(tablo(i))
    .Unprotect
    .Range("A10:AI24").ClearContents
    .Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End With
Next i
End Sub
 

job75

XLDnaute Barbatruc
Re : Protection de cellules

Bonjour jeromear,

Si l'on protége la feuille avec quelque chose de spécial (non sélection par exemple) pour les cellules verrouillées, ajouter cet argument supplémentaire :

Code:
.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True[COLOR="Red"], UserInterfaceOnly:=True[/COLOR]

Edit : juste avant cette protection, il faut indiquer ce qu'on veut, par exemple :

Code:
.EnableSelection = xlUnlockedCells

A+
 
Dernière édition:

jeromear

XLDnaute Junior
Re : Protection de cellules

Bonjour Job75
Merci pour votre reponse
Mais rien à faire : j'ai essayé avec ces nouveaux arguments (et d'autres)
Et toujours lors de la réouverture du fichier : les cellules verrouillées se retrouvent protégées
 

jeromear

XLDnaute Junior
Re : Protection de cellules

Bon je lance cette macro à l'ouverture du fichier et je retrouve ma mise en forme : pas d'acces possible sur les cellules verrouillées.
Ca devrait faire l'affaire
Merci et bonne journée.


Code:
Sub PROTEGER()
'
Dim cel As Range
Dim tablo, i As Byte
Application.ScreenUpdating = False
tablo = Array("COM1", "COM2", "COM3", "COM4", "COM5", "COM6", "COM7", "COM8", "COM9", "COM10") 'nombre de feuilles étudiées limité à 255, sinon => i As Integer
For i = 0 To UBound(tablo)
With Sheets(tablo(i))
    .Unprotect
    .Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End With
Next i
End Sub
 

Discussions similaires