verrouillage de cellule

  • Initiateur de la discussion Initiateur de la discussion david.ridelaire
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

D

david.ridelaire

Guest
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?
 
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:
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 !!!
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Réponses
1
Affichages
468
Réponses
4
Affichages
586
Retour