Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…