Donc la colonne synthèse, l'objectif est de faire une mise a jour automatique, via formule matricielle.
A ce jour j'ai une formule qui test SI il existe une "X" dans la colonne pour la ligne concernée et si oui, concatène les résultats pour afficher les entetes de colonnes.
Du genre
=CONCATENER(
SI(feuil!C7<>"";feuil!$D$3&" ";"");
SI(feuil!D7<>"";feuil!$E$3&" ";"");
SI(feuil!E7<>"";feuil!$F$3&" ";"");
SI(feuil!F7<>"";feuil!$G$3&" ";"");
)
Donc ca c'est tout a fait du bricolage, pour quelques colonnes, mais si je commence a avoir beaucoup de colonne, c'est pas gerable... est-ce que vous auriez des pistes en utilisant des automations avec des matricielles?
Sachant que cela fait longtemps que je n'ai plus réellement toucher à du excel... alors que je savais faire pas mal de chose... mais la, ca ne me revient pas du tout...
En vous remerciant d'avance, pour toute idée, ou coup de pouce
PS: j'ai ajouté le fichier d'exemple en PJ.
L'objectif est de remplacer la formule colonne "synthèse" par une formule matricielle, moins contraignante si j'ajoute des colonnes...
Re : Formule matricielle pour afficher les catégories d'un tableau
OK... merci pour ta réponse!
Et effectivement, je n'ai pas moyen de charger ces fonctions... a part le matriciel... une autre idée, c'est a dire? tu as une piste?
Re : Formule matricielle pour afficher les catégories d'un tableau
REbonjour
Et non, je ne vois pas de formule plus pratique que la tienne, sans passer par MCONCAT. Avec des SUBSTITUE, c'est aussi compliqué. Peut être avec EVALUER, mais pour le moment, je ne trouve pas.
Re : Formule matricielle pour afficher les catégories d'un tableau
Bonjour etoc, Bonjour CISCO ,
Sans VBA je ne vois pas non plus
à mettre dans un module
Code:
Function MConcatPasVide(PlageTest As Range, PlageConcat As Range, Sep As String) As String
Dim i As Long
MConcatPasVide = ""
For i = 1 To PlageTest.Cells.Count
If PlageTest(i).Value <> "" Then
MConcatPasVide = MConcatPasVide & PlageConcat(i).Value & Sep
End If
Next i
If Len(MConcatPasVide) > 0 Then MConcatPasVide = Left(MConcatPasVide, Len(MConcatPasVide) - 1)
End Function