XL 2016 Assembler du Texte avec Sommeprod

APPRENTI:)

XLDnaute Nouveau
Bonjour à tous,

je cherche à assemble du texte avec la fonction sommeprod.

Je me sers pour le moment d'une formule type =SI(B2="x";B1;"")&SI(C2="x";C1;"")&SI(D2="x";D1;"")

Seulement, il m'arrive de créer de nouvelles colonnes.... alors je dois modifier la fonction dans de nombreuse cellule.

J'aimerais une fonction qui s'étend sur tout une plage, à l'instar du la fonction sommeprod.
Je n'arrive pas à retranscrire du texte avec celle-ci, avez vous des conseils?

Très bonne journée à vous!!
 

Pièces jointes

  • test.xlsx
    10.4 KB · Affichages: 14
Solution
Re à tous,

Voir la version v2:

La fonction a été réécrite. Elle possède maintenant un troisième paramètre qui doit être égal à "D" si on veut les devis ou à "S" si on veut la situation.

Pour les devis: =ConcatSi(B2:O2;$B$1:$O$1;"d")
Pour les situations: =ConcatSi(B2:O2;$B$1:$O$1;"s")

Le code dans module1:
VB:
Function ConcatSi(rgX As Range, rgC As Range, Typ As String) As String
' Typ doit valoir "D" ou "S"
Dim j As Long, s As String, debut As Long
   If UCase(Typ) = "D" Then debut = 1 Else debut = 2
   For j = debut To rgX.Columns.Count Step 2
      If Trim(rgX.Cells(1, j)) <> "" Then s = s & ", " & Trim(rgC.Parent.Cells(rgC.Row, 1 - debut + rgX.Cells(1, j).Column))
   Next
   If Len(s) > 0 Then ConcatSi = Mid(s...

APPRENTI:)

XLDnaute Nouveau
lol
J'avais pas compris!!!!
Je sais pas comment ça fonctionne, mais c'est parfait!!!!!
un grand merci à toi, MaPomme!!!!!!!
Qu'est ce que j'aimerais y comprendre quelque chose en vba.

fini ce genre de formule dans je ne sais combien de cellule!!!
=SI('Prévisionnel&suivi'!CH7="x";'Prévisionnel&suivi'!$CH$2;"")&SI('Prévisionnel&suivi'!CJ7="x";'Prévisionnel&suivi'!$CJ$2;"")&SI('Prévisionnel&suivi'!CL7="x";'Prévisionnel&suivi'!$CL$2;"")&SI('Prévisionnel&suivi'!CN7="x";'Prévisionnel&suivi'!$CN$2;"")&SI('Prévisionnel&suivi'!CP7="x";'Prévisionnel&suivi'!$CP$2;"")&SI('Prévisionnel&suivi'!CR7="x";'Prévisionnel&suivi'!$CR$2;"")&SI('Prévisionnel&suivi'!CT7="x";'Prévisionnel&suivi'!$CT$2;"")&SI('Prévisionnel&suivi'!CV7="x";'Prévisionnel&suivi'!$CV$2;"")&SI('Prévisionnel&suivi'!CY7="x";'Prévisionnel&suivi'!$CY$2;"")&SI('Prévisionnel&suivi'!CZ7="x";'Prévisionnel&suivi'!$CZ$2;"")&SI('Prévisionnel&suivi'!DB7="x";'Prévisionnel&suivi'!$DB$2;"")&SI('Prévisionnel&suivi'!DD7="x";'Prévisionnel&suivi'!$DD$2;"")&SI('Prévisionnel&suivi'!DF7="x";'Prévisionnel&suivi'!$DF$2;"")&SI('Prévisionnel&suivi'!DH7="x";'Prévisionnel&suivi'!$DH$2;"")&SI('Prévisionnel&suivi'!DK7="x";'Prévisionnel&suivi'!#REF!;"")&SI('Prévisionnel&suivi'!DO7="x";'Prévisionnel&suivi'!#REF!;"")&SI('Prévisionnel&suivi'!DV7="x";'Prévisionnel&suivi'!$DV$2;"")&SI('Prévisionnel&suivi'!DX7="x";'Prévisionnel&suivi'!$DX$2;"")&SI('Prévisionnel&suivi'!DZ7="x";'Prévisionnel&suivi'!$DZ$2;"")&SI('Prévisionnel&suivi'!DS7="x";'Prévisionnel&suivi'!$DS$2;"")&SI('Prévisionnel&suivi'!CH7="s";'Prévisionnel&suivi'!$CH$2;"")&SI('Prévisionnel&suivi'!CJ7="s";'Prévisionnel&suivi'!$CJ$2;"")&SI('Prévisionnel&suivi'!CL7="s";'Prévisionnel&suivi'!$CL$2;"")&SI('Prévisionnel&suivi'!CN7="s";'Prévisionnel&suivi'!$CN$2;"")&SI('Prévisionnel&suivi'!CP7="s";'Prévisionnel&suivi'!$CP$2;"")&SI('Prévisionnel&suivi'!CR7="s";'Prévisionnel&suivi'!$CR$2;"")&SI('Prévisionnel&suivi'!CT7="s";'Prévisionnel&suivi'!$CT$2;"")&SI('Prévisionnel&suivi'!CV7="s";'Prévisionnel&suivi'!$CV$2;"")&SI('Prévisionnel&suivi'!CY7="s";'Prévisionnel&suivi'!$CY$2;"")&SI('Prévisionnel&suivi'!CZ7="s";'Prévisionnel&suivi'!$CZ$2;"")&SI('Prévisionnel&suivi'!DB7="s";'Prévisionnel&suivi'!$DB$2;"")&SI('Prévisionnel&suivi'!DD7="s";'Prévisionnel&suivi'!$DD$2;"")&SI('Prévisionnel&suivi'!DF7="s";'Prévisionnel&suivi'!$DF$2;"")&SI('Prévisionnel&suivi'!DH7="s";'Prévisionnel&suivi'!$DH$2;"")&SI('Prévisionnel&suivi'!DK7="s";'Prévisionnel&suivi'!#REF!;"")&SI('Prévisionnel&suivi'!DO7="s";'Prévisionnel&suivi'!#REF!;"")&SI('Prévisionnel&suivi'!DV7="s";'Prévisionnel&suivi'!$DV$2;"")&SI('Prévisionnel&suivi'!DX7="s";'Prévisionnel&suivi'!$DX$2;"")&SI('Prévisionnel&suivi'!DZ7="s";'Prévisionnel&suivi'!$DZ$2;"")&SI('Prévisionnel&suivi'!DS7="s";'Prévisionnel&suivi'!$DS$2;"")
 

Discussions similaires

Statistiques des forums

Discussions
314 450
Messages
2 109 731
Membres
110 553
dernier inscrit
loic55