Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 Mise en place d'une Alerte VBA en fonction du résultat d'une Condition

Patrick THEVENOT

XLDnaute Nouveau
Bonjour.
Je souhaiterai avoir un premier message d'alerte lorsque la Condition est à "1" et un second message d'alerte lorsque la Condition est à "0". La condition est à partir de la feuille "Synthese". J'aimerai avoir dans le message, le "Véhicule" qui atteint la Condition.
J'ai essayé ceci qui me génère une erreur :
Private Sub Workbook_Open()
'Programmer Rendez-Vous pour la Révision du Véhicule
Dim Alerte As Range
For Each Alerte In ActiveSheet.Range("Alertes")
Valeur = Cells(Alerte.Row, 1)
If Alerte = "0" Then
MsgBox "Attention, Un Rendez-Vous Pour L’Entretien du " & Valeur & " doit être pris au plus tôt", vbCritical, "Délai de 15 Jours"
Else
End If
If Alerte = "1" Then
MsgBox " Bientôt, Un Rendez-Vous Pour L’Entretien du " & Valeur & " devra être pris.", vbExclamation, "Délai de 30 Jours"
Else
End If
Next
End Sub
 

Pièces jointes

  • Suiviessai.xlsx
    38.1 KB · Affichages: 11

herve62

XLDnaute Barbatruc
Supporter XLD
Bonjour
Déjà , pourquoi dans ton fichier on a pas ta sub ?
ensuite tu utilises un "nom" qui n'est pas défini >Alertes ?
enfin tu cherches si ="1" ...etc mais dans ta cellule concernée c'est un nombre ??
Là je crois que ça va mieux
 

Pièces jointes

  • Suiviessai.xlsm
    44 KB · Affichages: 11

Phil69970

XLDnaute Barbatruc
Bonjour @Patrick THEVENOT, Hervé, le forum

Je te propose ceci :
VB:
Private Sub Workbook_Open()
Application.ScreenUpdating = False
Dim Derlig As Long '&
Derlig = Worksheets("Synthèse").Range("C" & Rows.Count).End(xlUp).Row

With Worksheets("Synthèse")
    For i = 2 To Derlig
        'Verif alerte révision
        If .Range("D" & i) = 1 Then MsgBox " Bientôt, Un Rendez-Vous pour l'entretien du " & _
            .Range("A" & i) & " devra être pris.", vbExclamation, "Délai de 30 Jours"
        If .Range("D" & i) = 0 Then MsgBox "Attention, Un Rendez-Vous pour l'entretien du " & _
            .Range("A" & i) & " doit être pris au plus tôt", vbCritical, "Délai de 15 Jours"
        'Verif alerte contrôle technique
        If .Range("E" & i) = 1 Then MsgBox " Bientôt, Un Rendez-Vous pour le contrôle technique du " & _
            .Range("A" & i) & " devra être pris.", vbExclamation, "Délai de 30 Jours"
        If .Range("E" & i) = 0 Then MsgBox "Attention, Un Rendez-Vous pour le contrôle technique du " & _
            .Range("A" & i) & " doit être pris au plus tôt", vbCritical, "Délai de 15 Jours"
    Next
End With
End Sub

Et tu as en plus aussi une alerte sur le contrôle technique.
Par contre je te suggère de regrouper dans un onglet paramètre....
J'ai juste crée l'onglet avec les valeurs dedans je te laisse modifier les validations des données.


@Phil69970
 

Pièces jointes

  • Suiviessai V1.xlsm
    60.1 KB · Affichages: 17
Dernière édition:

Patrick THEVENOT

XLDnaute Nouveau
Merci grandement car la réponse correspond tout à fait à ma demande. Il me faut m'appuyer sur le travail effectué pour reproduire une alerte sur le Contrôle Technique. Je n'ai aucune connaissance en VBA. Je m'étais appuyé sur un exemple trouvé sur le net. Cordialement.
 

Patrick THEVENOT

XLDnaute Nouveau
Bonjour.
Tout simplement Génial. Cela correspond tout à fait à mon attente et de plus les alertes sur le Contrôle technique sont en place. Merci de votre participation active car je suis bénévole à la Croix-Rouge Française sur l'antenne de Poissy et j'ai en charge la gestion de leurs véhicules.
Cordialement.
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…