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
- Message supprimé whatsapp - Guide
- Fausse alerte mcafee - Accueil - Piratage
- Message absence thunderbird - Guide
- Message alerte virus google chrome - Accueil - Virus
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