Automatiser le remplissage d'une matrice de Prouty

Bonjour à tous,

Je débute tout juste en VBA, donc mon niveau est actuellement beaucoup trop bas pour que je puisse remplir automatiquement une matrice de Prouty, je n'ai pas les connaissances nécessaires sur toutes les formules existantes... Alors après un casse-tête de une heure je me suis dit que finalement il était préférable que je fasse appel à votre aide. (Ce serait peut-être super simple pour vous...)

Alors voilà, vous pouvez trouver ci-joint mon fichier excel. J'aimerais classer dans la feuille "matrice" les risques cités dans la feuille "risques majeurs" en fonction de leur indice de probabilité et de gravité d'impact.

Est-ce que vous pourriez m'expliquer quelles fonctions utiliser, ou me montrer une programmation VBA qui puisse résoudre ce problème ?

Merci beaucoup beaucoup d'avance !

Juliette

180cartographie.xlsx (34.95 Ko)

Bonjour,

une solution basée sur une macro,

Sub aargh()
    Set wsm = Sheets("matrice")
    With Sheets("Risques majeurs")
        dl = .Cells(Rows.Count, 1).End(xlUp).Row
        For i = 2 To dl
            x = .Cells(i, "D")
            y = .Cells(i, "E")
            wsm.Cells(9 - y, x + 3) = wsm.Cells(9 - y, x + 3) & .Cells(i, "b") & vbCrLf
        Next i
    End With
End Sub

Merci beaucoup !

Bonjour,

Pouvez m'aider quant au report automatique de ma matrice? Je n'arrive pas à trouver de solution pour reporter les résultats des colonnes M,P,S dans les feuilles respectives Matrice brute, pondérée, corrigée. est ce qu'il est possible d'avoir un effet nuage de point ou une lettre pour symboliser le scenario reporté?

merci de votre réponse

Damien

J'utilise un PC en ce moment avec une version 2010.

Bonjour,

une solution basée sur une macro,

Sub aargh()
    Set wsm = Sheets("matrice")
    With Sheets("Risques majeurs")
        dl = .Cells(Rows.Count, 1).End(xlUp).Row
        For i = 2 To dl
            x = .Cells(i, "D")
            y = .Cells(i, "E")
[Surligner]       wsm.Cells(9 - y, x + 3) = wsm.Cells(9 - y, x + 3) & .Cells(i, "b") & vbCrLf[/Surligner]
        Next i
    End With
End Sub

Bonjour,

Afin de bien comprendre comment cette macro fonctionne et pouvoir me l'approprier, j'aimerais savoir à quoi correspond la ligne surlignée en jaune dans le code.

De ce que je comprends, le y = l'abscisse = la verticale; donc dans le tableau d'exemple (onglet "matrice") la macro doit s'exécuter sur une plage de 9 cellules ?; le x = l'ordonnée= horizontal; donc dans le tableau la macro doit s'exécuter à partir de la 3e cellule?

Est-ce que vous pourriez me confirmer ma lecture ? Ou peut-être est-ce complètement autre chose ! Je suis complètement novice en VBA du coup je tatonne

Merci à vous !

Simone

BOnjour,

la macro parcourt tous les risques et les place dans la bonne ligne (9-Y, Y=indice de gravité) et bonne colonne(X+3,X=indice de probabilité/fréquence) de la matrice.

La matrice commençant en ligne 4 pour la gravité 5 et se terminant en ligne 8 pour la gravité 1 et en colonne 4, pour la fréquence 1 et se terminant en colonne 8 pour la fréquence 5.

Merci pour cette réponse !

Du coup, le chiffre 9 est traduit comment concrètement dans le tableau ?

Bonjour,

chiffre 9 ?

les valeurs possibles pour la gravité(Y) vont de 5 à 1 (5 en ligne 4, 4 en ligne 5, 3 en ligne 6, etc... donc n° de ligne = 9-Y)

les valeurs possibles pour la fréquence(X) vont de 1 à 5 (1 en colonne 4,2 en colonne 5, 3 en colonne 6, etc... donc n° de colonne=x+3)

et on ajoute donc le libellé du risque dans cellule de la ligne 9-Y colonne x+3.

Merci !!!! Vous éclairez parfaitement ma lanterne VBA !

Rechercher des sujets similaires à "automatiser remplissage matrice prouty"