XL 2010 Lancer une macro quand une cellule est inférieur à une autre

Dylan67

XLDnaute Nouveau
Bonjour à tous,

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
 

yal

XLDnaute Occasionnel
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
 

Pièces jointes

  • Dylan67 exemple.xlsm
    16.4 KB · Affichages: 3

Discussions similaires

Réponses
6
Affichages
228
Réponses
21
Affichages
272

Membres actuellement en ligne

Statistiques des forums

Discussions
312 105
Messages
2 085 350
Membres
102 870
dernier inscrit
Armisa