Bonjour Marce,
merci pour ton retour, pour le ♡, et pour avoir passé le sujet en résolu !
tu a écrit :
Après je n'ai pas compris le langage exact.
pour le langage VBA, je remets ici la macro :
Sub EffDatesCT()
Dim dlig&, lig&: Application.ScreenUpdating = 0
dlig = Cells(Rows.Count, 2).End(xlUp).Row
For lig = 5 To dlig
With Cells(lig, 2)
If Not IsEmpty(.Value) Then .Offset(, 2).ClearContents
End With
Next lig
End Sub
explication du code VBA :
dlig = Cells(Rows.Count, 2).End(xlUp).Row : dernière ligne utilisée, selon la colonne 2 ;
dans l'exemple, colonne B, la dernière donnée est en ligne 30 (la date 20/11/17) ; donc dlig = 30
For lig = 5 To dlig : lig : ligne de 5 à dlig, donc de 5 à 30
With Cells(lig, 2) : avec la cellule de la ligne lig, colonne B
If Not IsEmpty(.Value) Then : si .Value = la valeur de Cells(lig, 2) n'est pas vide, alors
.Offset(, 2).ClearContents : effacer la cellule qui est sur la même ligne, 2 colonnes à droite :
colonne B + 2 = colonne D ➯ ça efface la date du contrôle technique : c'est ce qu'il fallait !
dhany