Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Créer une fonction de concaténation qui fonctionne sur une plage de cellules

nozil

XLDnaute Nouveau
Bonjour,

je vais tenter d'être clair.
J'ai un tableau de 170 colonnes. En entête, j'ai une valeur en texte (du genre 1.1, 1.2, 1.a)
Pour chaque ligne, dans chaque colonne, j'ai la valeur Oui ou Non.
Ce que je cherche à avoir, c'est pour chaque ligne, une colonne récap qui me concatène les entêtes pour lesquels j'ai un oui dans la case.
Un exemple ci dessous.
Comment feriez vous ça, sachant que mon nombre de colonnes est conséquent !

1.11.21.31.42.12.22.3Récap
ouinonouinonnonouinon1.1-1.3-2.2
nonouinonnonnonnonnon1.2
 

vgendron

XLDnaute Barbatruc
Hello

avec cette macro
VB:
Sub Recapitulatif()

Dim TabData() As Variant
Dim NbLignes As Long
Dim NbCol As Long
Dim Recap as string

With Sheets("Feuil1") 'dans la feuille 1
    NbLignes = .Range("A" & .Rows.Count).End(xlUp).Row
    NbCol = .Cells(1, .Columns.Count).End(xlToLeft).Column
    TabData = .Range("A1").Resize(NbLignes, NbCol).Value
    
    For i = LBound(TabData, 1) + 1 To UBound(TabData, 1)
        Recap = ""
        For j = LBound(TabData, 2) To UBound(TabData, 2) - 1
            If TabData(i, j) = "oui" Then Recap = Recap & "-" & TabData(1, j)
        Next j
        TabData(i, UBound(TabData, 2)) = Right(Recap, Len(Recap) - 1)
    Next i
    .Range("A1").Resize(NbLignes, NbCol) = TabData
End With
End Sub
 

nozil

XLDnaute Nouveau
Bonjour et merci pour le coup de main.
Je précise, je débute totalement dans les macros Excel.
J'ai rajouté cette macro dans ma feuille Excel. Quand je tente de l'exécuter, j'ai le message d'erreur "Argument ou appel de procédure incorrect".
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour à tous

Avec 365, un p'tite formule fait l'affaire en cellule O2 à recopier vers le bas :
VB:
=JOINDRE.TEXTE( "-";VRAI;FILTRE($A$1:$N$1;A2:N2="oui"))
 

Pièces jointes

  • nozil- concaténer- v1.xlsx
    10.7 KB · Affichages: 3

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…