Bonjour,
Suite à des recherches concernant la possibilité de faire un "concatener SI" comme l'on fait des "Sommes SI", j'ai trouvé une réponse sur ce forum datant de 2004 que j'ai adaptée mais qui ne semble pas fonctionner dans mon cas.
Ce que je veux pouvoir faire : concatener les cellules de la ligne R2 (qui comporte de nombreuses colonnes qui peuvent varier dans le temps) en fonction des valeurs contenu dans la ligne R1 (si elles sont supérieure à une valeur Rech). Il me faut donc un module paramétrable puisqu'il n'existe pas de formule dans excel qui corresponde au besoin.
Le module que j'ai trouvé est adapté à la même problématique mais pour concatener suivant des colonnes. Je l'ai donc modifié ce qui donne ceci :
Function CONCAT_SI(R1 As Range, Rech As Range, R2 As Range)
Dim CL As Range
Dim CHN As String
For Each CL In R1
If CL.Value >= Rech.Value Then
CHN = CHN & " " & Cells(R2.Row, CL.Column).Value
End If
Next
CONCAT_SI = Trim(CHN)
End Function
et du coup j'utilise dans mon classeur une formule du type : =CONCAT_SI($C4:$AH4;$N$1;$C$2:$AH$2)
Si vous avez une suggestion qui expliquerais pour quelle raison cela ne fonctionne pas, je suis preneur.
Nota : En préparant un fichier pour illustrer ma problématique, j'ai constaté que cela fonctionne lorsque les données et la formule sont sur la même feuille mais pas quand elles sont sur une feuille différente.
Merci d'avance pour vos suggestions.
PS : si vous avez une autre solution, je suis preneur également.
Suite à des recherches concernant la possibilité de faire un "concatener SI" comme l'on fait des "Sommes SI", j'ai trouvé une réponse sur ce forum datant de 2004 que j'ai adaptée mais qui ne semble pas fonctionner dans mon cas.
Ce que je veux pouvoir faire : concatener les cellules de la ligne R2 (qui comporte de nombreuses colonnes qui peuvent varier dans le temps) en fonction des valeurs contenu dans la ligne R1 (si elles sont supérieure à une valeur Rech). Il me faut donc un module paramétrable puisqu'il n'existe pas de formule dans excel qui corresponde au besoin.
Le module que j'ai trouvé est adapté à la même problématique mais pour concatener suivant des colonnes. Je l'ai donc modifié ce qui donne ceci :
Function CONCAT_SI(R1 As Range, Rech As Range, R2 As Range)
Dim CL As Range
Dim CHN As String
For Each CL In R1
If CL.Value >= Rech.Value Then
CHN = CHN & " " & Cells(R2.Row, CL.Column).Value
End If
Next
CONCAT_SI = Trim(CHN)
End Function
et du coup j'utilise dans mon classeur une formule du type : =CONCAT_SI($C4:$AH4;$N$1;$C$2:$AH$2)
Si vous avez une suggestion qui expliquerais pour quelle raison cela ne fonctionne pas, je suis preneur.
Nota : En préparant un fichier pour illustrer ma problématique, j'ai constaté que cela fonctionne lorsque les données et la formule sont sur la même feuille mais pas quand elles sont sur une feuille différente.
Merci d'avance pour vos suggestions.
PS : si vous avez une autre solution, je suis preneur également.
Pièces jointes
Dernière édition: