Msgbox VBA

Bonjour tout le monde,

J'essaie d'ajouter un msgbox erreur si le nombre entré dans la cellule K15 est strictement inférieur à 12, et que par defaut 12 soit entré dans la cellule. J'ai du mal car ça ne fonctionne pas et j'arrive pas à écrire (mettre 12 par défaut):

Sub MessageErreur()

Dim Valeur As Integer

Valeur = Range("K15").Value

If Valeur > 12 Then

MsgBox "Please enter a duration superior or equal to 12 months", vbExclamation, "Number of months not applicable"

End If

End Sub

Un petit coup de pouce serait apprécié .

Merci bcp

Bonjour,

Sub MessageErreur()
    Dim Valeur As Integer
    Valeur = Range("K15").Value
    If Valeur < 12 Then
        Range("K15") = 12
        MsgBox "Please enter a duration superior or equal to 12 months", vbExclamation, _
         "Number of months not applicable"
    End If
End Sub

NB- Ce serait bien d'utiliser la balise Code pour insérer du code dans un post, c'est plus lisible...

Lorsque tu écris Range (ou Cells...), tu dois savoir que tu écris une expression dépourvue de qualificateur d'objet, c'est à dire que ne précisant pas à quelle feuille la plage appartient tu obliges VBA à déduire qu'il doit la rechercher dans la feuille active du classeur actif et donc définir lui-même quelle est la feuille active... Si je n'ai pas modifié ton code sur ce point, il est bon tout de même de savoir qu'il toujours préférable de qualifier ses expressions, l'exécution du code n'en sera que plus rapide...

Cordialement.

Hello,

Merci pour ta réponse rapide, du coup si je veux ajouter la ref d'une feuille je la mets où?

J'ai copié collé ton code et malheureusement ça ne marche pas, j'ai mis 3 dans la cellule K15 et pas de message d'erreur ?

Merci pour ton aide.

en pj le fichier

Seule une évènementielle peut réagir à un évènement !... Tu remplaces ta procédure par la suivante :

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$K$15" Then
        If Target.Value < 12 Then
            Application.EnableEvents = False
            Target = 12
            Application.EnableEvents = True
            MsgBox "Please enter a duration superior or equal to 12 months", vbExclamation, _
             "Number of months not applicable"
        End If
    End If
End Sub

merci beaucoup

votre aide a atteint la perfection

merci encore!!!

Rechercher des sujets similaires à "msgbox vba"