VBA Concatener info sélectionner

Bonjour,

Je souhaite regrouper sur une même cellule toutes les informations d'entête de tableau sélectionnées dans la colonne respective.

Par exemple, un tableau avec en entête val1 val2 val3 val4, par la suite j'inscris une valeur ("x" par exemple) sous val1 et val3, je souhaiterais trouver dans la cellule de la ligne identifiant les "x" : "val1/val3".

J'ai bien penser à la combinaison des fonctions index et equiv, mais cela représente une seule valeur. Un boucle en VBA, répondra-t-il à ma demande.

D'avance merci pour votre aide.

Je vous joint un fichier d'exemple.

2nY

16exemplevba.xlsx (9.34 Ko)

Bonjour,

Quel est le nombre maximum de "Val" qui peut se trouver dans la première ligne ? Neuf ?

Cordialement

Bonjour,

Non, il n'y a pas vraiment de limite. Dans le traitement actuel, je serais amené à une gestion de 40 colonnes.

Par la suite, cela ne devrait pas trop évoluer.

cdlt, 2nY

Ah, alors en ce cas vous aurez certainement besoin d’une solution VBA, avec laquelle, malheureusement, je ne pourrai pas vous aider.

Bonne chance et cordialement.

Ah mince dommage,

Mais tu proposais quoi sinon ? Si cela peut m'orienter un peu je serais ravi

cdlt,

2nY

Mais sans VBA c’est vraiment pas la peine, surtout s’il s’agit d’un grand nombre de chaines à concaténer.

Vous êtes sûr de ne pas vouloir les mettre chacuns dans les cellules séparées à coté? Ça, c’est pas difficile, mais concaténer…

Je vous explique. Pour faire la concaténation sans VBA, il faudrait une formule matricielle ainsi :

=INDEX($C$1:$K$1;PETITE.VALEUR(SI($C$2:$K$2="x";COLONNE($C$2:$K$2)-MIN(COLONNE($C$2:$K$2))+1);1))&"/"&INDEX($C$1:$K$1;PETITE.VALEUR(SI($C$2:$K$2="x";COLONNE($C$2:$K$2)-MIN(COLONNE($C$2:$K$2))+1);2))&"/"&INDEX($C$1:$K$1;PETITE.VALEUR(SI($C$2:$K$2="x";COLONNE($C$2:$K$2)-MIN(COLONNE($C$2:$K$2))+1);3))

et que ce soit répétée tant fois qu’existent les "x" dans la ligne (celle ci-dessus suffit s’il y a trois "x") , incrémentant la valeur à la fin (en rouge) à chaque fois.

Cordialement

Effectivement, cela ne va pas me débloquer.

Merci pour votre réflexion sur le sujet.

Mais peut-on donner une valeur relative à une fonction ? de type :

INDEX(D&D1:K&2;1;EQUIV("x";D&D2:K&D2;0)) ==> $D1=1 et $D2=2

Vous voulez dire plutôt:

=INDEX(INDIRECT("D"&D1&":K"&D2);1;EQUIV("x";INDIRECT("D"&D2&":K"&D2);0)) ?

Cordialement

Oui c'est bien cela.

Merci

Cordialement,

Rechercher des sujets similaires à "vba concatener info selectionner"