Extraire dans une cellule le contenu de plusieurs cellules sous conditions

audric30

XLDnaute Nouveau
Bonsoir, j'aurai besoin d'aide pour une réaliser une macro et je ne vois pas comment faire, je débute sur excel.

Je souhaite classer des risques selon leur pondération dans un tableau.

Sur 4 colonnes, dans une cellule je nomme un risque R1-100 par exemple, je le pondère avec une gravité "forte" et une probabilité "moyenne" ce qui donne une criticité "inacceptable" (par une formule de test logique), jusque là tout va bien.
Ensuite j'aimerai extraire ces risques pour les classer dans un tableau croisé. (Voir pièce jointe)
En gros pour la probabilité "forte" on attribue la "ligne 4" et pour la probabilité moyenne la "colonne E" ce qui donne la "cellule E4" et je souhaiterais coller les risques à l'intérieur de celle-ci et les concaténer dans la même cellule avec un retour à la ligne (ou quelque chose de lisible).
 

Pièces jointes

  • Classeur1.xlsx
    16.1 KB · Affichages: 103
  • Classeur1.xlsx
    16.1 KB · Affichages: 109
  • Classeur1.xlsx
    16.1 KB · Affichages: 111

R@chid

XLDnaute Barbatruc
Re : Extraire dans une cellule le contenu de plusieurs cellules sous conditions

Salut,
pourquoi toutes ces cellules fusionnees, c'est pas trop???
sur excel ce n'est pas elegant de faire cela, si tu peux refaire le fichier???
@ te relire
Amicalement
 

Modeste geedee

XLDnaute Barbatruc
Re : Extraire dans une cellule le contenu de plusieurs cellules sous conditions

Bonsour®
Je souhaite classer des risques selon leur pondération dans un tableau.

sourire confus...
je nomme un risque R1-100 par exemple
quelle régle pour passer d'une pondération à un libellé ???

la combinatoire des gravités et probabilités fait qu'il n'y a que 9 risques possibles (???? feuil2)

je souhaiterais coller les risques à l'intérieur de celle-ci et les concaténer dans la même cellule avec un retour à la ligne (ou quelque chose de lisible).
sourire...
toutes les infos existent dans la feuille 1

quelques aménagements(zone intermédiaire), index/equiv, mise en forme conditionnel et voila le résultat !
 

Pièces jointes

  • xld_audric30.xls
    43 KB · Affichages: 78
  • xld_audric30.xls
    43 KB · Affichages: 84
  • xld_audric30.xls
    43 KB · Affichages: 79

audric30

XLDnaute Nouveau
Re : Extraire dans une cellule le contenu de plusieurs cellules sous conditions

Bonjour,

Alors à Rachid, c'est une extraction de mon fichier de travail et j'ai besoin que ces cellules soient fusionnées parce que la ligne risque comporte a plusieurs libellé en face qui se raccroche au même risque.

A Modeste Geede tu n'as pas répondu à mon besoin, je veux une macro (ou une formule) qui CONCATENE tous les risques dans la cellule qui leur correspond. Dans le modèle que j'ai posté j'ai fais exprès de mettre plusieurs risques dont les classements sont les mêmes afin d'avoir la nécessiter de les concaténer dans la cellule de destination.
 

Modeste geedee

XLDnaute Barbatruc
Re : Extraire dans une cellule le contenu de plusieurs cellules sous conditions

Bonsour®
A Modeste Geede tu n'as pas répondu à mon besoin, je veux une macro (ou une formule) qui CONCATENE tous les risques dans la cellule qui leur correspond.

je n'ai toujours pas compris...
quelle cellule ???

sourire...
sans macro, TCD
voir feuil2
 

Pièces jointes

  • xld_audric30.xls
    43 KB · Affichages: 72
  • xld_audric30.xls
    43 KB · Affichages: 67
  • xld_audric30.xls
    43 KB · Affichages: 63

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Extraire dans une cellule le contenu de plusieurs cellules sous conditions

Bonjour audric30,

Puisque tu "veux :(" ou plutôt désires :) (Bonjour Modeste ! Et bonjour Rachid.), je te propose une solution avec des formules mais en ayant modifié la composition de ton tableau.

Chaque partie d'une catégorie est composée de 11 cellules (une pour le titre et 10 pour les risques).
Si une categorie comprend plus de 10 risques, il suffit d'insérer une ou plusieurs lignes complètes au niveau de la catégorie et de recopier les formules juste au dessus sur les lignes insérées.

Les formules sont des formules matricielles. Attention: Pour chaque bloc horizontal de 3 catégories, les formules sont différentes et les formules ne peuvent pas être copiées d'un bloc à l'autre (parce que, contre mon éthique personnelle, j'ai fusionné des cellules :mad:)
exemple de formule en D3:
Code:
=SIERREUR(INDEX(Feuil2!$C$1:$C$9999;PETITE.VALEUR(SI((Feuil2!$D$2:$D$9999=$C$2)*(Feuil2!$E$2:$E$9999=D$34);LIGNE(Feuil2!$F$2:$F$9999);"");LIGNES($D$3:D3)));"")
Formule matricielle: Elle doit être validée par la combinaison des touches Ctrl+Maj+Entrée au lieu de la seule touche Entrée comme une formule classique.
Si la validation matricielle est correcte, alors Excel entoure la formule d'accolades {=.......}.
Chaque fois que cette formule sera modifiée, la validation devra se faire par Ctrl+Maj+Entrée. Les accolades apparaissent à la validation et ne doivent pas être saisies au clavier.

En espérant avoir compris ta demande,

Edit: corrigé un p'ti bug quand on insère une ligne!
 

Pièces jointes

  • Classer les risques v2.xlsx
    22.2 KB · Affichages: 97
Dernière édition:

job75

XLDnaute Barbatruc
Re : Extraire dans une cellule le contenu de plusieurs cellules sous conditions

Bonjour audric30, le fil,

Une solution VBA :

Code:
Sub Exposition()
Dim tableau As Range, tablo, grav, proba, i As Byte, j As Byte, p%, cel As Range
Set tableau = Sheets("Feuil1").[D4:F6] 'nom à adapter
tablo = tableau
grav = tableau.Columns(0)
proba = tableau.Rows(tableau.Rows.Count + 1)
'---RAZ du tableau---
For i = 1 To UBound(tablo)
  For j = 1 To UBound(tablo, 2)
    p = InStr(tablo(i, j), vbLf)
    If p Then tablo(i, j) = Left(tablo(i, j), p - 1)
  Next
Next
'---remplissage du tableau---
On Error Resume Next 'si aucune valeur
For Each cel In Range("C3:C" & Rows.Count).SpecialCells(xlCellTypeConstants)
  On Error Resume Next
  i = Application.Match(cel.Offset(, 1), grav, 0)
  j = Application.Match(cel.Offset(, 2), proba, 0)
  If Err = 0 Then tablo(i, j) = tablo(i, j) & vbLf & cel
Next
tableau = tablo
tableau.Parent.Activate 'facultatif
End Sub
Fichier joint.

A+
 

Pièces jointes

  • Exposition(1).xls
    64 KB · Affichages: 80

job75

XLDnaute Barbatruc
Re : Extraire dans une cellule le contenu de plusieurs cellules sous conditions

Re,

Une simplification de la dernière boucle :

Code:
Dim tableau As Range, tablo, grav, proba, i, j, p%, cel As Range
'-----
'---remplissage du tableau---
On Error Resume Next
For Each cel In [C:C].SpecialCells(xlCellTypeConstants)
  i = Application.Match(cel.Offset(, 1), grav, 0)
  j = Application.Match(cel.Offset(, 2), proba, 0)
  tablo(i, j) = tablo(i, j) & vbLf & cel
Next
Ici les variables i et j sont Variant (type par défaut) et peuvent ainsi prendre une valeur d'erreur.

Fichier (2).

A+
 

Pièces jointes

  • Exposition(2).xls
    64 KB · Affichages: 83

Discussions similaires

Statistiques des forums

Discussions
312 298
Messages
2 086 979
Membres
103 417
dernier inscrit
abaabdelghani