Remplir une combinaison de case en fonction d'autre

Bonjour,

Déjà je tiens à m'excuser pour mon titre bien compliqué haha.

Je sollicite votre aide car je souhaite créer une case qui sera remplit en fonction de plusieurs critères... Ex bien plus parlant ci dessous.

Je souhaite que la colonne "compilation" se remplisse automatiquement en fonction des cases cochées, avec l'entête de la colonne et des "/".

ABCDEFCompilation
xxxxxxA/B/C/D/E/F
xxxA/C/E
xB

Merci pour votre aide !!

Bonjour

2019 et plus

=JOINDRE.TEXTE("/";;SI(A2:F2="x";$A$1:$F$1;""))

2003 en matriciel

=GAUCHE(CONCAT(SI(A2:F2="x";$A$1:$F$1&"/";""));NBCAR(CONCAT(SI(A2:F2="x";$A$1:$F$1&"/";"")))-1)

Bonjour hadescedric, 78chris , le forum,

Avec un soupçon de vba....

Function compileX(titres As Range, Plage_X As Range) As String
 Dim I As Long, Resultat As String
   For I = 1 To titres.Columns.Count
    If UCase(Plage_X(1, I)) = UCase("x") Then
     If Resultat = "" Then
      Resultat = titres(1, I)
     Else
      Resultat = Resultat & " / " & titres(1, I)
     End If
    End If
   Next I
 compileX = Resultat
End Function

En H2:

=compileX($A$1:$F$1;A2:F2)

Cordialement,

Bonjour et merci à vous deux. Je vais privilégier la méthode 78chris car ça m'évite la macro ^^, en revanche ça ne fonctionne pas et je ne gère pas du tout la formule dedans ...

xorsankukai, j'ai quand même regardé ton fichier vu que ça fonctionne, ben déjà que j'ai du mal avec excel mais alors là, je ne pige rien et c'est ce qui m'embête... Quand je reçois de l'aide j'aime comprendre, bidouiller, m'approprier la chose afin de l'exploiter et pourvoir la modifier si besoin. Mais faut dire que le vba..... j'en ai jamais fait. Donc en fait pour utiliser ça faudrait que je fasse une formation :p

Bonjour

Tu as vraiment une version 2003 datant de 19 ans ?

Effectivement CONCAT est récent également

Cela va faire une formule à rallonge pour tester chacune des 5 colonnes et n'est pas évolutif si tu dois ajouter des colonnes

Prend la fonction de xorsankukai

Bonjour,

Quand je reçois de l'aide j'aime comprendre, bidouiller, m'approprier la chose afin de l'exploiter et pourvoir la modifier si besoin.

'Puisque la fonction n'existe pas, il faut la créer : fonction personnelle

Function compileX(titres As Range, Plage_X As Range) As String
 'titres = plage des valeurs à récupérer
 'Plage_X= plage contenant les X
 Dim I As Long, Resultat As String
 'Déclaration des variables
   For I = 1 To titres.Columns.Count
   'boucle sur toutes les cellules(colonnes)de la plage titres
    If UCase(Plage_X(1, I)) = UCase("x") Then
    'si la cellule contient un X (majuscule où minuscule, d'où le UCase)
     If Resultat = "" Then
     'si c'est le premier résultat
      Resultat = titres(1, I)
      'alors le résultat est la valeur de la cellule de la plage titres
     Else
     'sinon
      Resultat = Resultat & " / " & titres(1, I)
      'on prend le résultat précédent, on rajoute un / et la valeur du titre
     End If
     'fin de la condtion de Rsultat
    End If
    'fin de la condition du X
   Next I
   'prochaine cellule(colonne) de la plage titres
 compileX = Resultat
 'résultat de la formule
End Function

'Le code est à placer dans un module standard
'La fonction s'utilise comme une formule standard
'En H2: =compileX($A$1:$F$1;A2:F2); à tirer vers le bas
'Le classeur doit être enregistré en .xlsm (prise en charge des macros)

@78chris: Je ne suis pas parvenu à exploiter ta formule,

Effectivement CONCAT est récent également

image

J'ai bien tenté:

image

Mais je n'arrive pas à trouver le bon résultat....


Cordialement,

RE

@78chris: Je ne suis pas parvenu à exploiter ta formule

Pas possible avec 2010 : ni CONCAT ni JOINDRE TEXTE

image

Mais vu le classeur de hadescedric, je pense qu'il a une révision 2003 de 365 : il joint un xlsx et il y a des @ bizarres dans sa formule

78chris, je n'avais pas compris ! je pensais que c'était à partir de la version 2003, puis l'autre formule pour la partie après 2019 ^^ J'ai une version 2016 (version pro de l'entreprise)

xorsankukai, merci pour le détail ^^

RE

Met ton profil à jour en indiquant 2016

Et j'ai vu après coup que CONCAT était aussi 2019 et plus (je n'ai pas en mémoire pour chaque fonction ajoutée au fil du temps, la version et aurais du vérifier...)

J'ai une maj à faire qui va apparemment me faire migrer vers 2019.... J’essaierai donc ce fameux CONCAT !

RE

Utilise plutôt JOINDRE.TEXTE bien plus pratique encore

marche impec ! Merci à vous deux pour l'aide

=JOINDRE.TEXTE("/";;SI(A2:F2="x";$A$1:$F$1;""))

Merci du retour

Bonjour,

Je reviens vers vous car en ayant compléter mon tableau je me rends compte qu'un truc ne va pas ^^ Dans le fichier joint, comme avoir le même ordre? Par exemple la case P7 = P9 mais pas dans le même ordre.

Je sais que ça vient de la formule et qu'il va chercher dans l'ordre, mais du coup comment faire pour avoir le même ordre partout ?

Bonjour

L'intérêt de JOINDRE.TEXTE était justement de d'en mettre qu'un et non un par colonne...

Je ne sais si j'ai bien compris

=JOINDRE.TEXTE("/";;FILTRE($J$5:$O$5;J6:O6<>"";""))

bonjour,

à la base ce n'était que des X mais finalement j'ai du détailler un peu plus mon tableau et c'est pour cela qu'il y maintenant plus de critère. Pas possible de mettre dans le même ordre dans la colonne de compil du coup ?

Rechercher des sujets similaires à "remplir combinaison case fonction"