Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub 'On sort du code si la selection et plus grande que une case
'Ci-dessous on controle que la selection en cours est bien située dans la plage, sinon on éjecte de la macro
If Intersect(Target, Range("j8:j" & Cells(Rows.Count, "G").End(xlUp).Row)) Is Nothing Then Exit Sub
If Target.Value <> Tmp Then ' on controle que la cellule à bien était modifié, pour éviter (en partie) les doublons de date
'Puis on cherche la position de la dernière cellule occupée dans la même ligne que la selection,
'mais dans la Feuil16(codeName de la feuille'PLANIFICATION'),
'et on l'incrémente de 1 vers la droite avec "offset(,1)"
'puis on lui attribue la valeur de la cellule en cours "=Target.value"
Feuil16.Cells(Target.Row, Columns.Count).End(xlToLeft).Offset(, 1) = Target.Value
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub 'On sort du code si la selection et plus grande que une case
'Ci-dessous on controle que la selection en cours est bien située dans la plage, dans ce CAS ce sera
'A partir de J8, jusqu'a Jx, x étant la dernière ligne occupée en colonne G
If Not Intersect(Target, Range("j8:j" & Cells(Rows.Count, "G").End(xlUp).Row)) Is Nothing Then
Tmp = Target.Value ' puis on mémorise dans la variable Tmp la cellule selectionnée
End If
End Sub