Bonjour à vous deux,
J'ai traité un sujet de ce genre qui pourra sûrement vous aider...
J'avais utilisé une macro de concaténation qui permettait de prendre un tableau en variable d'entrée, le code était le suivant :
Function RegroupeTexte(texte As Variant) As String
Application.Volatile
valeurfin = ""
For i = LBound(texte, 1) To UBound(texte, 1)
For j = LBound(texte, 2) To UBound(texte, 2)
If texte(i, j) <> "" And valeurfin = "" Then
valeurfin = texte(i, j)
ElseIf texte(i, j) <> "" And valeurfin <> "" Then
valeurfin = valeurfin & Chr(10) & texte(i, j)
End If
Next j
Next i
RegroupeTexte = valeurfin
End Function
Le but était de reporter le nom des personnes qui avaient des congés au jour j, il y avait donc une feuille qui contenait les informations des congés, si on oublie le fait que la personne voulait mettre différents congés sur la même ligne, vous pourrez réutiliser les formules et le codage pour arriver à ce que vous voulez... J'avais utilisé des fonctions SI pour renvoyer ensuite les noms des personnes, ou sinon renvoyer "", la fonction se chargeait ensuite de tout rassembler.
Je vous mets le lien du sujet ici :
https://forum.excel-pratique.com/viewtopic.php?f=2&t=115470