Macro VBA diagnostic en fonction de valeurs dans d'autres cellules
Bonjour à tous,
Je travaille quotidiennement avec excel et j'ai actuellement une grande base de données de patients avec de nombreuses variables évaluées. Pour chaque patient, je dois poser un diagnostic en fonction de valeurs de certaines variables . J'aimerais pouvoir automatiser ce diagnostique pour gagner du temps mais malheureusement je n'ai jamais appris le VBA. J'ai essayé d'apprendre par moi-même mais je bloque et n'arrive pas à mes fins.
Je chercher donc de l'aide pour pouvoir mettre en place une commande automatisant ce fameux diagnostic.
J'ai essayé de détailler au mieux la démarche de raisonnement qui est la suivante :
Dans la ligne de la cellule sélectionnée (cf fichier excel joint : exemple simplifié de ma base):
Etape 1
- SI : colonne C < 27 OU colonne D>15 ALORS vérifier colonne B.
- SINON : écrire “Diagnostique 1”
Etape 2
- SI : colonne B < 8.87 ALORS vérifier colonne E et colonne F et colonne G.
- SINON : écrire « Diagnostique 2 »
Etape 3
- SI : colonne E ≤8 OU colonne F ≤0.8 OU colonne G>20 ALORS écrire”diagnostique 3”.
- SINON : écrire “Dignostique 4”
Etape 4 (si possible) :
- SI : « case sélectionnée » = « diagnostique 3 » ET colonne A≥31 ALORS écrire « diagnostique 5 »
- SINON : laisser « diagnostique 3 »
Etape 5 (si possible) :
- SI : « case sélectionnée » = « diagnostique 4 » ET colonne A≥31 ALORS écrire « diagnostique 6 »
- SINON : laisser « diagnostique 4 »
Je ne sais pas si cela est réellement réalisable et, si ça l'est, le niveau de complexité que cela représente.
Je vous remercie d'avance pour le temps que vous m'accorderez et n'hésitez pas à me demander plus d'informations si je n'ai pas été assez clair
A tantôt !
Bonjour,
Quand tu dis
SI : colonne B < 8.87 ALORS vérifier colonne E et colonne F et colonne G.
Que faut-il vérifier dans les colonnes E F et G.
Avec cette formule, tout est en diagnostique 2.
=SI(OU(C2<27;D2>15);SI(B2<8.87;"Diagnostique 2";SI(OU(E2<=0.8;G2>20);"Diagnotique 3";"diagnostique 4")))A placer en H2 et étirer vers le bas
L'idéal serait de donner en colonne H les résultats escomptés. On aurait une meilleur lecture du problème.
Cordialement
Bonjour,
Peut-être?
=SI(OU(C2<27;D2>15);SI(B2<8,87;SI(OU(E2<=8;F2<=0,8;G2>20);SI(A2>=31;"Diag5";"Diag3");SI(A2>=31;"Diag6";"Diag4"));"Diag2");"Diag1")Bonjour,
Merci pour vos retours rapides et vos aides !!
En vous lisant j'ai compris la logique que vous utilisez. Je cherchais à faire trop compliqué.
cousinhub :
Ta formule semble très bien fonctionner ! J'ai juste inversé les positions des Diag 5 et 3 avec les Diag 6 et 4. En effet, si les conditions de E, F et G sont vérifiées alors ce sont les Diag 6 ou 4 qui doivent être appliqués.
Pour te répondre ddetp88
Quand tu dis
SI : colonne B < 8.87 ALORS vérifier colonne E et colonne F et colonne G.
Que faut-il vérifier dans les colonnes E F et G.
Pour être plus précis le diagnostic est évolutif :
- Diagnostic 1 : pas de pathologie détectée
- Diagnostic 2 : pathologie pré-confirmée
- Diagnostic 3 : pathologie confirmée
- Diagnostics 4, 5 et 6 : critères de sévérités
L'idée est donc : Si la colonne B répond au critère inférieur à 8.87 alors la pathologie est confirmée (diag 3) alors nous regardons les valeurs des colonnes E, F et G pour évaluer la sévérité de cette pathologie (4). Les diagnostics 5 et 6 sont des critères de sévérité d'un autre type, dépendant de la variable 1(je ne sais pas si je suis assez clair).
Encore une fois merci pour vos aides rapides c'est top !
Vous allez me faire gagner beaucoup de temps et je vous en remercie !
mieux vaut rester en diag 1 ou 2. On se sent en bonne santé