Dans mon tableau j'ai une colonne "Stock"(calculé) et une autre colonne "Stock min." je voudrai lancer une macro d'envoi de mail automatique lorsque le stock est inférieur au stock min. Alors j'aimerai comparer la valeur affiché dans ces deux cellules.
Actuellement, je fonctionne de cette façon :
Je compare les deux colonne avec la formule (dans la colonne H) : =SI(@stock<@stockmin;1;""), ce qui me permet ensuite de créer une condition qui lorsqu'une cellule dans la colonne H est modifié une macro d'envoi de mail automatique est lancée.
Mais le problème avec ce système est que la macro se lance à chaque modif de calcul même si le stock n'est pas inférieur au stock min.
Ici le code que j'utilise actuellement :
VB:
Private Sub Worksheet_Calculate()
Vérif
End Sub
Private Sub Worksheet_Change1(ByVal Target As Excel.Range)
If Intersect(Target, Range("H1:H100")) Is Nothing Then Exit Sub
Vérif
End Sub
Private Sub Vérif()
If VarType(Range("H1:H100")) = VarType(ValPrec) Then _
If ValPrec = Range("H1:H100") Then Exit Sub
MsgBox "test"
ValPrec = Range("H1:H100")
End Sub
'Dans le "thisworkbook"'
Private Sub Workbook_Open()
Feuil1.ValPrec = Feuil1.Range("H1:H100")
End Sub
Bonsoir
Dans le module de la feuille ou sont les valeurs à suivre
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("tb_stocks[stock]")) Is Nothing And Target.Count = 1 Then
If Target.Value < Target.Offset(0, 1).Value Then Call envoiMail
End If
End Sub