Macro pour afficher un message d'alerte

Bonjour à tous,

Me voici encore une fois coincé avec ce petit problème pour lequel j'espère qu'encore compter sur votre aide.

Voilà, j'ai un petit tableau pour contrôler ma tension artérielle tous les jours et je voudrais qu'au fur et à mesure que j’inscris le nombre dans la colonne "E", une alerte s'affiche dans la colonne "H".

Le message d'alerte doit être pris dans le Tableau "Plage des valeurs de tension" à la colonne "J".

Exemple: Si le SYSTOLE dans la colonne "E6" est de 143, il doit s'afficher à la colonne "H" le résultat de la colonne "J" correspondant à une plage de nombres qui va de 140 à 159 dans la colonne "L", (c'est à dire ce qui correspond au Niveau 1 en colonne "J").

J’envoie ci-joint le fichier en question ce sera beaucoup plus clair.

Merci d'avance pour votre aide

Bonjour,

Ma petite contribution à tester (fonctions à affiner si besoin).

1 fonction Stystole, 1 fonction Diastole et 1 fonction de synthèse

ALT F11 pour visualiser le code.

Cdlt.

Option Explicit
Public Function Diag_Systole(S)
    Select Case S
        Case Is < 120
            Diag_Systole = 1
        Case 120 To 129
            Diag_Systole = 2
        Case 130 To 139
            Diag_Systole = 3
        Case 140 To 159
            Diag_Systole = 4
         Case 160 To 179
            Diag_Systole = 5
        Case Else
            Diag_Systole = 6
        End Select
End Function
Public Function Diag_Diastole(D)
    Select Case D
        Case Is < 80
            Diag_Diastole = 1
        Case 80 To 84
            Diag_Diastole = 2
        Case 85 To 89
            Diag_Diastole = 3
        Case 90 To 99
            Diag_Diastole = 4
         Case 100 To 109
            Diag_Diastole = 5
        Case Else
            Diag_Diastole = 6
        End Select
End Function
Public Function Diagnostic(Systole, Diastole)
Dim x As Integer, y As Integer
Dim résultat As Integer
    If Systole = "" Or Diastole = "" Then
    Exit Function
    End If
    x = Diag_Systole(Systole)
    y = Diag_Diastole(Diastole)
    résultat = Application.Max(x, y)
    Select Case résultat
        Case 1
            Diagnostic = "Optimale"
        Case 2
            Diagnostic = "Normale"
        Case 3
            Diagnostic = "Haute"
        Case 4
            Diagnostic = "Niveau 1"
        Case 5
            Diagnostic = "Niveau 2"
        Case Else
            Diagnostic = "Niveau 3"
    End Select
End Function

Un grand MERCI Jean-Eric,

Je essayé, ça marche parfaitement sans modifier quoi que ce soit.

Remarque, il vaut mieux que je ne modifier rien du tout car je me suis un peu plongé dans ton petit programme et j'ai commencé à avoir mal à la tête. Je commence à être persuadé que j'ai bien fait de ne pas vouloir persisté à faire des études de programmeur.

Bravo pour ta perspicacité et lucidité Jean-Eric. Merci encore.

Pour moi ce genre de petits services que vous autres rendez ici sur ce Forum font toujours un effet de satisfaction incomparable, comme si j'avais trouvé enfin la formule du Graal

A+

Bonjour

J'avais fait différemment

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 5 Then
'Cells(Target.Row, 2).Value = Date & " - " & Time
Cells(Target.Row, 2) = Now
Cells(Target.Row, 4) = "Sans"
Target.Offset(0, 3).Select
ActiveCell.FormulaR1C1 = _
        "=IF(RC[-3]="""","""",CHOOSE(MATCH(RC[-3],{1000;179;159;129;129;119;0},-1),""Niveau 3"",""Niveau 2"",""Niveau 1"",""Haute"",""Normale"",""Optimale""))"
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
        Application.CutCopyMode = False
End If
End Sub

Cordialement

Merci aussi Amadéus,

en effet ça marche tout aussi bien. Je garderais donc aussi cette façon de faire, c'est toujours très intéressant de comparer selon nos besoins ce qui convient le mieux. Bravo donc. Vous êtes des génies du VBA, je m'incline. Chapeau bas.

Rechercher des sujets similaires à "macro afficher message alerte"