Private Sub Worksheet_Change(ByVal Target As Range)
Dim tablo, i&, L%
Application.ScreenUpdating = False
Application.EnableEvents = False 'désactive les évènements
With Range("D1:I" & Cells.SpecialCells(xlCellTypeLastCell).Row)
tablo = .Value
For i = 2 To UBound(tablo)
tablo(i, 1) = Trim(tablo(i, 2) & " " & tablo(i, 3) & vbLf & Format(tablo(i, 4), "dd mmm yyyy") & vbLf & Format(tablo(i, 5), "0000000000") & vbLf & tablo(i, 6))
If tablo(i, 1) = vbLf & vbLf & vbLf Then tablo(i, 1) = ""
Next
.Offset(1).Font.Bold = False 'RAZ
.Value = tablo 'restitution
For i = 2 To UBound(tablo)
L = Len(LTrim(tablo(i, 2)))
If L Then .Cells(i, 1).Characters(1, L).Font.Bold = True
L = Len(RTrim(tablo(i, 6)))
If L Then .Cells(i, 1).Characters(Len(tablo(i, 1)) - L + 1, L).Font.Bold = True
Next
End With
Application.EnableEvents = True 'réactive les évènements
End Sub