Sub Observation()
Dim bd As Object, dico As Object
Dim dl As Integer, i As Integer, x As Integer, lg As Integer, drlig As Integer
Dim pl As Range, cel As Range
Dim temp As Variant
Dim enObs As String
Application.ScreenUpdating = False
Set bd = Sheets("BD")
dl = bd.Cells(Application.Rows.Count, 1).End(xlUp).Row
Set pl = bd.Range("B2:B" & dl)
Set dico = CreateObject("Scripting.Dictionary")
For Each cel In pl.Offset(0, 2)
dico(cel.Value) = ""
Next cel
temp = dico.keys
For i = 0 To UBound(temp)
bd.Range("A1").AutoFilter
bd.Range("A1").AutoFilter Field:=4, Criteria1:=temp(i)
If bd.Range("B:B").SpecialCells(xlCellTypeVisible).Areas(1).Count > 1 Then
lg = 2
Else
lg = bd.Range("B:B").SpecialCells(xlCellTypeVisible).Areas(2).Item(1).Row
End If
x = Application.Subtotal(3, [pl])
drlig = Sheets("BD").Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row
'concatener
If x > 1 Then
enObs = Cells(lg, 13) & Chr(10) & Cells(drlig, 13)
enObs = Replace(enObs, Chr(10), Chr(10))
Cells(lg, 13).Value = enObs
Application.DisplayAlerts = False
Cells(drlig, 13).ClearContents
Application.DisplayAlerts = True
End If
Next i
bd.Range("A1").AutoFilter
End Sub