Re,
D'où la nécessité de bien expliciter la demande. Essaye le code suivant :
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("B:B")) Is Nothing Then
If Target <> "" Then
Target.Offset(0, -1) = "D" & WorksheetFunction.Text(WorksheetFunction.CountA(Range("B2:B" & Target.Row)), "00000")
Else
Target.Offset(0, -1) = ""
End If
End If
End Sub