Bonjour,
La fonction CONCATENER ne peut malheureusement pas gérer les cas de ce genre, c'est pour ça que j'avais codé une fonction dans le forum pour gérer ce genre de situation.
Voici le code de la fonction utilisée:
Function AssembleTexte(plage, Optional separateur As String) As String
Application.Volatile
Dim tableau As Variant
AssembleTexte = ""
On Error Resume Next
nb_lig = UBound(plage, 1)
nb_col = UBound(plage, 2)
On Error GoTo 0
ReDim tableau(1 To nb_lig, 1 To IIf(nb_col = "", 1, nb_col))
If nb_col = "" Then
For i = LBound(tableau, 1) To UBound(tableau, 1)
tableau(i, 1) = plage(i)
Next i
Else
For i = LBound(tableau, 1) To UBound(tableau, 1)
For j = LBound(tableau, 2) To UBound(tableau, 2)
tableau(i, j) = plage(i, j)
Next j
Next i
End If
Dim cel As Range
For i = LBound(tableau, 1) To UBound(tableau, 1)
For j = LBound(tableau, 2) To UBound(tableau, 2)
If tableau(i, j) <> "" Then
AssembleTexte = AssembleTexte & IIf(AssembleTexte = "", "", separateur) & tableau(i, j)
End If
Next j
Next i
End Function
Et le fichier test qui va avec, valide les formules avec le raccourci Shift + Ctrl + entrée