verrouillage de cellule

david.ridelaire

XLDnaute Junior
Bonjour à tous,

voilà, j'ai une formule de ce type :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Target.Column = 1 And Target.Offset(0, 8) = "" Then Target.Offset(0, 8) = Date: Exit Sub
If Target.Column = 5 And Target.Offset(0, 3) = "" Then Target.Offset(0, 3) = Date
If Target.Column = 13 And Target.Offset(0, -1) = "" Then Target.Offset(0, -1) = Target.Offset(0, -2)
If Target.Column = 5 Then
If Target.Value <> "" Then
Range("F" & Target.Row).Font.ColorIndex = 2
Else
Range("F" & Target.Row).Font.ColorIndex = 1
End If
End If
End Sub

Cependant, losque je verrouille la colonne (par le biais de la fonction protection d'excel) dans laquelle j'insère la date,

lorsque j'execute ma macro, elle me renvoie une erreur

quelqu'un aurait-il une solution?
 

jeanpierre

Nous a quitté
Repose en paix
Re : verrouillage de cellule

Bonjour david.ridelaire,

Normal, tu veux écrire dans une feuille protégée...

Il faut déprotéger ta feuille avant d'envoyer le code et la reprotéger avant de sortir du code....

Pleins d'exemples sur le forum....

A te lire...

Jean-Pierre

Re SergiO, désolé, mais devenu de plus en plus insomniaque et que de plus, je devais me lever bonne heure.... donc... (mais, bon, pour les interventions, c'est assez rare tout de même...)
 
Dernière édition:

SergiO

XLDnaute Accro
Re : verrouillage de cellule

Bonjour David

Il faut déprotéger dans le code:

Code:
 Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
[COLOR=Red]ActiveSheet.Unprotect[/COLOR]
If Target.Column = 1 And Target.Offset(0, 8) = "" Then Target.Offset(0, 8) = Date: Exit Sub
If Target.Column = 5 And Target.Offset(0, 3) = "" Then Target.Offset(0, 3) = Date
If Target.Column = 13 And Target.Offset(0, -1) = "" Then Target.Offset(0, -1) = Target.Offset(0, -2)
If Target.Column = 5 Then
If Target.Value <> "" Then
Range("F" & Target.Row).Font.ColorIndex = 2
Else
Range("F" & Target.Row).Font.ColorIndex = 1
End If
End If
[COLOR=Red]ActiveSheet.Protect[/COLOR]
End Sub

@+

Edit: Décidément jeanpierre, encore devant moi !!!
 

Discussions similaires

Statistiques des forums

Discussions
312 523
Messages
2 089 306
Membres
104 119
dernier inscrit
karbone57