Option Explicit
Function NOUV(jour$) As String
Application.Volatile
If Not IsDate(jour) Then Exit Function
Dim cel As Range, co1%, co2%, col%, lg1&, lig&, s1$, s2$, k%
With Worksheets("Totaux")
With .ListObjects("Tableau4")
If .DataBodyRange Is Nothing Then Exit Function
With .Range.Cells(1): lg1 = .Row: co1 = .Column: End With
k = .ListColumns.Count + co1 - 1: co2 = co1 + 1
End With
Do While Val(.Cells(lg1, co2)) = 0 And co2 <= k: co2 = co2 + 1: Loop
co2 = co2 - 1: Set cel = .Columns(co1).Find(jour, , -4163, 1, 1)
If cel Is Nothing Then Exit Function
lig = cel.Row: co1 = co1 + 1
For col = co1 To co2
s1 = .Cells(lig, col)
If Val(s1) <> 0 Then s2 = s2 & .Cells(lg1, col) & " " & s1 & " / "
Next col
If s2 <> "" Then s2 = Left$(s2, Len(s2) - 3)
NOUV = s2
End With
End Function