Lister plusieurs valeurs dans une colonne - matrice

Bonjour

Je souhaiterai lister plusieurs valeurs présentes dans une colonne ( valeurs du risque), puis récupérer les champs présent sur les lignes des valeurs listées précédemment ( nom du risque), pour enfin concaténer le résultat dans plusieurs cellules regroupé par valeurs ( résultats des risques ):

Le but est de pouvoir réaliser une matrice des risques

Nom du risque - Valeur de risque - Case de la matrice des risques - Résultats des risques par case de la matrice

A --------------------------6 -----------------------------------1 ----------------------------------

B -------------------------- 4 -----------------------------------2 ----------------------------------E

C -------------------------- 6------------------------------------3 ----------------------------------D

D --------------------------3------------------------------------4 ----------------------------------B,F

E --------------------------2-------------------------------------5 ----------------------------------

F --------------------------4-------------------------------------6 --------------------------------- A,C,G

G --------------------------6 ------------------------------------7 ----------------------------------

J'ai beau chercher la formule pour parcourir la colonne de valeur de risque et extraire les champ ( nom du risque) correspondant je bloque. J'ai cherché du coté d'Index / Equiv, de rechercheV, nb.si etc....

Merci par avance

Sylvain

Salut Sylvain et bienvenue sur le Forum,

Un fichier exemple avec éventuellement une indication manuelle du résultat attendu aurait serait beaucoup plus utile que ton tableau écrit.

Cordialement.

joindre un fichier forum

Une formule qui marche :

=SI(B$1=D1;A$1 & ",";"") & SI(B$2=D1;A$2 & ",";"") &SI(B$3=D1;A$3 & ",";"")&SI(B$4=D1;A$4 & ",";"")&SI(B$5=D1;A$5 & ",";"")&SI(B$6=D1;A$6 & ",";"")&SI(B$7=D1;A$7 & ",";"")

En colonne D les valeurs possibles et en colonne E la formule à recopier vers le bas.

Tout d'abord merci pour vos réponses.

Voici ci joint le fichier en question.

Je saisi le nom du risque en A

Je saisi l’occurrence du risque en I

Je saisi la gravite du risque en J.

Il en résulte une concaténation en W, qui correspond ensuite à une case de la matrice en Y ( voir onglet "management des risques")

Après traitement j'arrive à faire correspondre le résultat de la concaténation avec une case de la matrice en S.

Toutes les cases de la matrice sont représentées en Y, et je souhaiterai faire apparaitre le nom de chaque risque en Z ( ou des risques séparés par une virgule s'il en a plusieurs)

En espérant avoir été à peu près clair, dans le cas contraire n'hésitez pas à me le dire et je re préciserai.

Merci par avance

Ca reste obscur pour moi

Par exemple en Z3 que devrait-il apparaître ? ou encore en Z8 ?

Bonjour

Alors en Z3 normalement la case resterait vide car aucun risque identifié correspond à la case 1 de la matrice des risques ( "1" dans la colonne (S) )

Par contre en Z8 nous devrions voir apparaître la lettre "E" car le risque identifié comme E possède un risque correspondant à la 6ème case de la matrice en S.

Si besoin je peux simplifier le fichier ?

Merci par avance

Bonjour c'est une amdec personnalisée ? J'garde une copie du fichier car cela pourra me servir ultérieurement et j'essaie de faire une macro

C'est en effet une AMDEC personnalisée, du moins la première version.

J'ai encore pas mal de choses à rajouter pour que l'outils soit réellement exploitable.

Une fois le tri des risques opérationnel je rajouterai d'autres fonctions ( diagramme radar, gestion des coûts etc..) et je vous le mettrai à dispo

J'ai fait une macro mais s'il y a d'autres solutions je ne veux pas interférer avec les premiers helpeurs sur se sujet (et j'suis preneur pour le fichier finalisé;;)

Merci pour la macro, ca marche nickel !

Il manque juste à rajouter une virgule entre chaque "risque" mais ca ne doit pas être grand chose dans le code.

Par contre ne maitrisant pas vraiment le VB, je serais curieux de savoir si le même résultat peut être obtenu sans macro

J'sais pas faire (pour la virgule)...Sans vba c'est très certainement possible mais ça va demander de sacrifier quelques colonnes...

Bonjour,

Etant intervenu en premier sur ce fil, je l’ai suivi du coin de l’œil. Je propose un petit rajout – passablement bricolé – pour le problème des virgules.

Amicalement.

Salutation Yvouille et merci d'avoir comblé mes lacunes

Merci pour la modif de la macro , c'est parfait

N’étant pas un tueur en macro, serait ce possible d'avoir une explication de cette dernière ?

Thank's

Salutation, la première partie de la boucle...Bonne lecture

Sub macro()
Feuil2.[z3:z50].ClearContents 'effacer la zone z3:z50
Dim dl&, dc&, i%, j%, quoi As Variant, trouve As Range 'décalaration des variables en fonction de ce qu'elles vont contenir comme information
dl = Feuil2.Range("a" & Rows.Count).End(xlUp).Row ' calcul de la dernière non vide de la colonne A

For i = 3 To dl 'une boucle qui va se répeter tant que la valeur de i n'a pas atteint la valeur de dl (dl c'est le numéro de la dernière ligne non vide)
With Feuil2 'focus sur la zone de travail qui est la feuil2
quoi = .Range("y" & i) 'je met dans la variable quoi ce que je recherche (ligne 3 pour commencer, puis ligne 4 lors de la répétition de la boucle puis puis ligne 5 etc...)
    Set trouve = .Range("s3:s50").Find(quoi, LookIn:=xlValues, lookat:=xlWhole) ' je recherche la cellule dans la plage S3:50 qui à la valeur de "quoi" ("quoi" = Range("y" & i) donc 1 lors de la permière itération de la boucle)
    If Not trouve Is Nothing Then ' si la cellule trouvé n'est pas rien (donc si on a trouvé une cellule)
        firstAddress = trouve.Address 'alors je stock l'adresse de la cellule que j'ai trouvé
        Do 'puis je fais
         .Range("z" & i) = .Range("z" & i) & Cells(trouve.Row, 1) 'ma cellule z = ma cellule z + le résultat que j'ai trouvé
            Set trouve = .Range("s3:s50").FindNext(trouve) 'maintenant que j'ai trouvé, j'indique que je veux chercher encore
        Loop While Not trouve Is Nothing And trouve.Address <> firstAddress 'tant que je trouve des cases qui comporte ce que je recherche et qui sont differentes de la dernière cellule trouvée je vais à la ligne qui a "DO" et je rajoute à ma  cellule z le résultat que j'ai trouvé
    End If ' une fois qu'il n'y a plus de correspondance ma boucle de recherche se termine
End With 'je cloture le fait de ne travaille que sur la feuil2
Next 'j'augmente i de 1 pour maintenant chercher la deuxième valeur dans la colonne y...

Salut,

J’ai voulu me lancer dans le décorticage de ma partie du code, mais c’est très vite devenu compliqué. Je te conseille alors d’aller jeter un coup d’œil au fil suivant https://forum.excel-pratique.com/cours-astuces/methodes-point-d-arret-et-pas-a-pas-t59460.html et à t’intéresser à ces deux méthodes que te permettrons de mieux comprendre les codes des autres et ainsi de plus apprendre par toi-même.

S’il y a malgré tout l’un ou l’autre passage pour lesquels tu désirerais plus d’explication, c’est très volontiers.

Cordialement.

Merci pour l'ajout des commentaires sur le code.

Vu la complexité du code, je comprend mieux pq j'avais du mal à sortit le même résultat avec quelques malheureuses formules (Index, Equiv ou encore RECHERCHE)....

Salutation, euh...Non vous auriez pu y arriver, j'ai essayé de le faire mais je n'ai pas voulu continuer pour éviter de travailler pour rien vu que la macro obtenais le résultat escompté

Bonjour à tous

Salutation, euh...Non vous auriez pu y arriver, j'ai essayé de le faire mais je n'ai pas voulu continuer pour éviter de travailler pour rien vu que la macro obtenais le résultat escompté

Vous n'auriez pas travaillé pour rien, j'ai d'autres matrices à sortir et à chaque fois j'ai besoin de tri.

J'essayes péniblement de traduire la macro ( qui marche nickel) mais je dois avouer que je suis beaucoup plus à l'aise avec les fonctions.

si vous arrivez à sortir le même résultat en formules je dis bravo!

Bonjour, j'ai a peu près le même résultat sauf que les lettres ne sont pas séparées par des virgules

Rechercher des sujets similaires à "lister valeurs colonne matrice"