Bonjour,
une fonction ne permet pas de formater une cellule, il faut passer par une macro.
comme la macro reprend le format de chaque caractère, son exécution dure plusieurs secondes.
la macro ne reprend pas les formats résultant d' une mise en forme conditionnelle
lancer la macro via alt-F8
Sub concat_matrice()
dl = Cells(2, 1).End(xlDown).Row 'nombre de lignes à concaténer
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.Calculation = xlCalculationManual
Set dc = Range("C2") 'cellule de destination
Set pl = Range("A2:B" & dl) 'plage à concaténer
'concaténation
dc.Value = ""
For Each cel In pl
If Len(dc) > 0 Then dc.Value = dc.Value & ";"
ldc = Len(dc)
dc.Value = dc.Value & cel.Value
Next
' copie des formatages
ldc = 0
For Each cel In pl
For i = 1 To Len(cel)
With dc.Characters(ldc + i, 1).Font
.FontStyle = cel.Characters(i, 1).Font.FontStyle
.Size = cel.Characters(i, 1).Font.Size
.Color = cel.Characters(i, 1).Font.Color
.Bold = cel.Characters(i, 1).Font.Bold
.Italic = cel.Characters(i, 1).Font.Bold
.Underline = cel.Characters(i, 1).Font.Underline
End With
Next i
ldc = ldc + Len(cel) + 1
Next
Application.ScreenUpdating = True
Application.EnableEvents = True
Application.Calculation = xlCalculationAutomatic
End Sub