Bonjour

Voici mon challenge du jour

Donc en faite j'ai une plage de cellule A22:A1004, mon but et que des qu'on rensgne une valeur dans cette plage (j'ai mis une liste déroulante) alors la date doit apparaitre en auto dans la cellule juste à droite.

Et 2 eme problème

est ce que c'est possible de verouiller les cellules A22, B22 et E22:AQ22 quand A22 est renseigné
et sur le même principe C22, D22 et AR22:AV22 quand C22 est renseigné et ainsi de suite sur toute la colonne
J'ai commencé a écrire ça mais j'arrive pas à aller plus loin

Avec beaucoup de mal j'ai écris le code ci dessous mais ça ne fonctionne pas,
j'aurai besoin d'un coup de main

je peux joindre le fichier si besoin

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Private Sub Worksheet_Change(ByVal Target As Range)
 
With Target
 
If Application.Intersect(Target, Range("A22:A1004, C22:C1004")) Is Nothing Then Exit Sub
If .Count > 1 Then Exit Sub
 
Application.EnableEvents = False
 
If .Value = "" Then .Offset(, 1).Value = "" Else .Offset(, 1) = Date
 
.EntireRow.Locked = False 'déverrouille toute la ligne
 
'verrouille en fonction
If .Column = 1 Then Union(.Offset(, 1), Range(.Offset(, 4), .Offset(, 42))).Locked = Target.Value <> "" 'si colonne A
If .Column = 3 Then Union(.Offset(, 1), Range(.Offset(, 41), .Offset(, 45))).Locked = Target.Value <> "" 'si colonne C
 
Application.EnableEvents = True
 
End With
 
End Sub