MsgBox avec condition

Résolu/Fermé
Bourrique66 Messages postés 158 Date d'inscription mardi 2 juin 2015 Statut Membre Dernière intervention 25 septembre 2023 - 18 oct. 2022 à 09:07
Bourrique66 Messages postés 158 Date d'inscription mardi 2 juin 2015 Statut Membre Dernière intervention 25 septembre 2023 - 19 oct. 2022 à 08:57

Bonjour ;

J’aimerai qu’un MsgBox apparaisse  si la valeur dans la TextBox33 et supérieur ou égale à 6 Mois, sur internet j’ai trouvé ce code que j’essaie d’adapter à mon cas.

    If Me.TextBox33.Value >= 6 Then

  MsgBox "Attention produit anti-crevaison route dépassé"

  End If

Le message apparait bien  mais je pense que la condition n’est pas prise en compte, le message apparait quel que soit le contenu de la TextBox.

Pouvez-vous m’aider

Private Sub TextBox33_Change()
Application.ScreenUpdating = False
TextBox33.Value = Format(TextBox33.Value, "0 Mois")

           Dim test As Boolean
With TextBox33
    test = Val(Replace(.Text, ",", ".")) >= 6
    .BackColor = IIf(test, vbRed, vbGreen)
    .ForeColor = IIf(test, vbWhite, vbBlack)
    .Font.Bold = test
End With

    If Me.TextBox33.Value >= 6 Then
  MsgBox "Attention produit anti-crevaison route dépassé"
  End If

Application.ScreenUpdating = True
End Sub

4 réponses

via55 Messages postés 14495 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 7 novembre 2024 2 734
18 oct. 2022 à 10:20

Bonjour

Essaie ainsi

Private Sub TextBox33_Change()
If Right(TextBox33.Value, 1) = "s" Then Exit Sub
Application.ScreenUpdating = False
TextBox33.Value = Format(TextBox33.Value, "0 Mois")
           Dim test As Boolean
With TextBox33
    test = Val(Replace(.Text, ",", ".")) >= 6
        If test = True Then MsgBox "Attention produit anti-crevaison route dépassé"
    .BackColor = IIf(test, vbRed, vbGreen)
    .ForeColor = IIf(test, vbWhite, vbBlack)
    .Font.Bold = test
End With

Application.ScreenUpdating = True
End Sub

Cdlmnt

Via


0
Bourrique66 Messages postés 158 Date d'inscription mardi 2 juin 2015 Statut Membre Dernière intervention 25 septembre 2023 2
18 oct. 2022 à 18:01

Merci Via ;

votre code fonctionne parfaitement, si vous avez le temps pourriez-vous mettre des commentaires dans votre code afin que je puisse le comprendre pour pouvoir le reproduire. Bien sûr si vous avez le temps. Merci de votre patience

0
via55 Messages postés 14495 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 7 novembre 2024 2 734
18 oct. 2022 à 18:41

Le code est le tien

J'ai seulement modifié 2 choses

1) la ligne "If Right(TextBox33.Value, 1) = "s" Then Exit Sub" vérifie le dernier caractère à droite dans le textbox et si c'est s sort de la Sub. Ceci afin d'éviter lors de la mise au format dans la ligne qui suit dan sla macro elle s'applique à nouveau et que cela renvoie éventuellement une 2eme fois le message de dépassement

2) Pour faire afficher la Mgsbox au lieu de le faire après le premier test pour changement de couleur je le groupe dans le With


0
Bourrique66 Messages postés 158 Date d'inscription mardi 2 juin 2015 Statut Membre Dernière intervention 25 septembre 2023 2
19 oct. 2022 à 08:57

Bonjour Via

Merci d'avoir pris du temps pour me répondre 

0