Message d'alerte avec VBA
RésoluHamster18 Messages postés 176 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous !
J'ai un tableau dans lequel nous pouvons rentrer des nombres comme ci-dessous :
J'aimerais que si la moyenne de ces nombres n'est pas comprise dans les valeurs minimale et maximale tolérées une boite de dialogue soit ouverte (quelques soient le nombre de valeurs saisie dans un premier temps) .
Je penses m'orienté vers une solution VBA mais je ne voit pas comment créer une boite de dialogue en VBA, et comment l'ouvrir si la moyenne sort de l'intervalle définit.
Pouvez m'orienter vers la solution à adopter ?
Merci d'avance de vos retours.
Cordialement.
- Message d'alerte avec VBA
- Recuperer message whatsapp supprimé - Guide
- Fausse alerte mcafee - Accueil - Piratage
- Message absence thunderbird - Guide
- Message supprimé whatsapp - Guide
- Epingler un message whatsapp - Accueil - Messagerie instantanée
2 réponses
Bonjour,
Tu peut utiliser les msgbox:
https://learn.microsoft.com/fr-fr/office/vba/language/reference/user-interface-help/msgbox-function
Cdlt.
Bonsoir,
Merci ça m'as bien aider !
Maintenant je créer une msgbox et j'ai utilise un trigger pour l’afficher lors de chaque calcul sur la feuille.
J'aimerais maintenant que la msgbox s'affiche seulement quand la moyenne n'est pas compris dans le bon intervalle ...
Voici ou j'en suis dans le code :
Private Sub Worksheet_Calculate()
Dim Msg, Style, Title, Help, Ctxt, Response, MyString
Msg = "Do you want to continue ?" ' Define message.
Style = vbYesNo Or vbCritical Or vbDefaultButton2 ' Define buttons.
Title = "MsgBox Demonstration" ' Define title.
Help = "DEMO.HLP" ' Define Help file.
Ctxt = 1000 ' Define topic context.
' Display message.
Response = MsgBox(Msg, Style, Title, Help, Ctxt)
If Response = vbYes Then ' User chose Yes.
MyString = "Yes" ' Perform some action.
Else ' User chose No.
MyString = "No" ' Perform some action.
End If
End Sub
Merci d'avance pour votre aide.
Cordialement.
Ma solution si ça peut aider quelqu'un un jour
Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range
Dim iRow As Single
Dim nb, i As Integer
nb = 0 'compteur du nombre de valeur remplie dans la colonne
Set KeyCells = Range("E15:ZZ19") 'champs de saisie des valeurs
If Not Application.Intersect(KeyCells, Range(Target.Address)) Is Nothing Then 'permet de connaitre la cellule qui vient d'être modifié dans le champs de saisie des valeurs
If IsNumeric(Cells(20, Range(Target.Address).Column).Value) = True Then 'vérifie que la cellule moyenne n'est pas une erreur
For i = 1 To 5 'Boucle pour connaitre le nombre de valeur saisie dans la colonne
If IsEmpty(Cells(14 + i, Range(Target.Address).Column)) = False Then
nb = nb + 1
End If
Next
If nb > 4 Then 'Si 5 valeurs ont été saisie dans la colonne
If Cells(20, Range(Target.Address).Column).Value < Range("G7").Value Or Cells(20, Range(Target.Address).Column).Value > Range("G6").Value Then 'Si la moyenne n'est pas dans le bon interval
message Range(Target.Address), "MOYENNE NON-CONFORME" 'message d'alerte
End If
If Cells(21, Range(Target.Address).Column).Value > Range("G4") Then 'si l'étendu n'est pas dans le bon interval
message Range(Target.Address), "ETENDU NON-CONFORME" 'message d'alerte
End If
End If
End If
Exit Sub
End If
End Sub
Sub message(adresse, titre)
Msg = "1. Vérifier la saisie" & Chr(13) & Chr(10) & "2. Refaire une mesure" & Chr(13) & Chr(10) & Chr(13) & Chr(10) & "Si votre valeur est toujours non-conforme suivre les instrustions du document " & Worksheets("Identité").Range("C21").Value & " (mode opératoire de réaction face au défaut) " & Chr(13) & Chr(10) & Chr(13) & Chr(10) & " Voulez-vous continuer ? " ' Define message.
Style = vbYesNo Or vbExclamation Or vbDefaultButton2 ' Define buttons.
title = titre ' Define title.
Help = "DEMO.HLP" ' Define Help file.
Ctxt = 1000 ' Define topic context.
Response = MsgBox(Msg, Style, title, Help, Ctxt) ' Display message.
If Response = vbYes Then ' User chose Yes.
Exit Sub
Else ' User chose No.
adresse.Value = "" ' Perform some action.
Exit Sub
End If
End Sub
