Fonction si erreur

9cartev2.xlsx (13.70 Ko)

Bonjour,

Je dois insérer des risques dans des cases. Je pense que la fonction si erreur suffit même si possiblement il faudrait peut-être ajouter une ligne de code pour mettre deux risques dans une même case. Mais j'ai un problème avec la fonction sierreur qui ne me met pas correctement dans une case le bon couple probabilité / impact (cf. PJ). Merci de votre aide à ce sujet.

Bonjour @ tous,

c'est pas clair, merci de mettre les résultats escomptés sur le fichier sans formules et avec plus d'explication on t'aidera à mieux faire les formules..

bonjour

j'avais déjà repondu à une question simulaire.

Vous pouvez regarder le sujet.

https://forum.excel-pratique.com/excel/cartographie-des-risques-t76561.html

Je crois qu'il pourra donner une idée pour vous avancer.

Cordialement..

Bonjour,

Si ton tableau était cohérent, la formule ci-dessous donnerait le résultat :

=CAR(SOMMEPROD((Tableau1[Probabilité]=$B2)*(Tableau1[Impact]=C$6)*CODE(Tableau1[Risque])))

Mais note-la pour quand tu auras rendu ton tableau cohérent !

Tu cartographies 16 risques selon le couple probabilité-impact, mais tu n'en répertories que 10 dans le tableau. Et de plus les risques C et F sont le même, de même que B et J, ce qui réduit à 8 les risques répertoriés.

La formule te renverra le bon risque pour 6 cas, un résultat fantaisiste (somme des doublons) pour les 4 cas doublés 2 à 2, et une erreur pour les autres (qui peut être récupérée avec SIERREUR, mais pas les cas doublés!)

Cordialement.

Merci pour vos réponses. J'ai mis à jour le fichier (Carte V2, voir mon post initial svp).

En fait, pour couple abscisse / ordonnée (impact v. probabilité), je souhaite faire apparaître le risque dans la case. Je voudrais faire dire à Excel quelque chose comme : si impact est de 3 et probabilité est de 2, alors la case F5 sera alimentée du nom du risque".

Merci de votre aide.

C'est ce que fait la formule que j'ai mis, mais à condition qu'il n'y ait pas de risques doublés.

Compte-tenu des évolutions possibles, je te le fais en fonction personnalisée :

Function RISQUE(Risk As Range, Prb As Integer, Ipct As Integer) As String
    Dim dpi As Object, i%, pi$
    Set dpi = CreateObject("Scripting.Dictionary")
    With Risk
        For i = 1 To .Rows.Count
            pi = .Cells(i, 3) & .Cells(i, 2)
            If dpi.exists(pi) Then
                dpi(pi) = dpi(pi) & ";" & .Cells(i, 1)
            Else
                dpi(pi) = .Cells(i, 1)
            End If
        Next i
    End With
    pi = Prb & Ipct
    If dpi.exists(pi) Then
        If InStr(dpi(pi), ";") > 0 Then
            RISQUE = Join(Split(dpi(pi), ";"), Chr(10))
        Else
            RISQUE = dpi(pi)
        End If
    Else
        RISQUE = ""
    End If
End Function

Voir utilisation dans tableau (mettre retour ligne automatique pour la carte des risques)

Cordialement.

Merci beaucoup pour le fichier, qui marche comme je le voulais. C'est très gentil.

Pour que je comprennes svp, le code que vous avez écrit, où est-il inséré svp ? Aussi, si je veux ajouter une colonne au tableau (après impact et probabilité), devrais-je toucher le code ?

Merci encore.

Le code se trouve dans Module1. Tu fais Alt+F11 pour ouvrir l'éditeur VBA et tu tomberas dessus.

J'en suis venu à une solution personnalisée, en supposant que les lettres de la colonne Risque ne seraient pas forcément des lettres mais des expressions plus complètes et que dans la mesure où l'on allait distinguer des risques dotés d'une valeur d'impact et d'une valeur de probabilité identiques, les fonctions habituelles ne permettraient pas de bâtir une formule directe pointant le risque dans le tableau à partir des seules valeur d'impact et probabilité. Il faudrait donc en passer par des calculs intermédiaires pour réorganiser les données en tables dans lesquelles on puisse chercher, ou faire une fonction personnalisée adaptée à la structure des données.

La fonction personnalisée, fait le calcul elle-même et ne matérialise que le résultat obtenu en fin de calcul. On lui fournit en arguments le tableau à 3 colonnes : risque-impact-probabilité, la probabilité cherchée, l'impact cherché. Elle n'est pas totalement finalisée en ce sens qu'elle ne vérifie pas la conformité du tableau, pour renvoyer en cas de non conformité une valeur d'erreur prédéfinie.

Aussi si tu lui fournis un tableau qui n'a plus la même structure elle pourra renvoyer une erreur si elle y trouve des données non compatible avec le type attendu, ou un résultat imprévu si le calcul peut être mené à terme avec des données qui ne sont pas les bonnes.

Donc si tu rajoutes une colonne mais qu'elle n'intervient pas dans le calcul "catographique", il faut simplement continuer de fournir à la fonction une plage de 3 colonnes. Si c'est le calcul qui est modifié, la fonction sera à rebâtir.

Cordialement.

Merci énormément pour toutes tes explications !

Est-ce que c'est pi = .Cells(i, 3) & .Cells(i, 2) qui indique le nombre de colonnes ? Je comprends que 3 signifie qu'il y a 3 colonnes ?

Merci !

Cette commande concatène le contenu des 3e et 2e colonnes, ce qui crée un couple probabilité-impact, qui va servir à identifier un élément dont le contenu sera celui de la 1re colonne, soit le risque.

En quelque sorte, une qu'on a fourré tous les risques dans des boîtes étiquetées probabilité-impact, , il suffit d'ouvrir celle dont l'étiquette correspond à celle qu'on cherche, pour avoir le résultat.

Rechercher des sujets similaires à "fonction erreur"