XL 2010 messagebox

IMRANE

XLDnaute Occasionnel
Bonjour le forum
svp j ai une question pour un message box
j ai mis une piece joint expliquant ma question
 

Pièces jointes

  • 01.TESTE FORMILE.xlsm
    813.6 KB · Affichages: 27

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir Imrane,
Peut être en modifiant le début de Worksheet_SelectionChange dans la feuille Livraison :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    If Not Intersect([H7:H35], Target) Is Nothing Then
        Magasin = Cells(Target.Row, "D")                                                ' Mémorisation du magasin
        If Magasin <> "" And Application.CountIf([E59:E64], Magasin) > 0 Then           ' Si magasin présent dans la liste
            Qté = Application.VLookup(Magasin, [E59:F64], 2, False)                     ' Vérification quantité disponible
            If Qté < Target Then MsgBox " ATTENTION il faut changer de depôt": Exit Sub ' Alerte si Qté demandée supérieure à quantité disponible
        End If
        Application.OnKey Key:="~", procedure:="retour_colonneC"
    End If
Après le message d'alerte on sort de la sub. A modifier si non désiré.
 

IMRANE

XLDnaute Occasionnel
BONJOUR Sylavnu, le forum

Merci votre réponse je viens d inserrer le code [ ] il marche mais le messagebox doit être active lors de la saisie du nombre carton dans la collone "H7:H35" et nom pas en cliquant sur la cellule après car d habitue je ne clic pas sur la cellule après la saisie du nombre de cartons je passe directement a un autre article dans la collone (C5:C37) en cilquant sur ENTRE.


.

 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour,
Dans ce cas il faut intégrer la modif dans Worksheet_Change.
VB:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    ' Vérification du stock vs le dépot
    If Not Intersect([H7:H35], Target) Is Nothing Then
        Magasin = Cells(Target.Row, "D")                                                ' Mémorisation du magasin
        If Magasin <> "" And Application.CountIf([E59:E64], Magasin) > 0 Then           ' Si magasin présent dans la liste
            Qté = Application.VLookup(Magasin, [E59:F64], 2, False)                     ' Vérification quantité disponible
            If Qté < Target Then MsgBox " ATTENTION il faut changer de depôt": Exit Sub ' Alerte si Qté demandée supérieure à quantité disponible
        End If
    End If
    
    Dim Colonne As Integer
    Dim Adresse As String
    ... suite du code
S'il y a alerte je sors de la macro. Si non désiré, supprimez le "Exit sub"
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
Je n'ai pas le même comportement que vous, regardez ce gif, pour moi c'est ok.
Test4.gif
 

Statistiques des forums

Discussions
315 132
Messages
2 116 580
Membres
112 797
dernier inscrit
zouzou50