XL 2010 Problème macro qui se répète à chaque clic

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Dylan67

XLDnaute Nouveau
Bonjour,

J'ai deux problèmes, premièrement je souhaiterais lancer une macro lorsque une des cellules dans la plage "v9:v200" est <= à 0, actuellement je n'arrive que a appliquer cette macro sur une cellule avec Range ("V9"), si je saisi Range ("v9:v200") l'erreur "incompatibilité de type" apparait.

Deuxièmement, lorsque la cellule v9 est <= à 0 la macro se lance mais le problème est la macro se lance à chaque clic sur une cellule.
Je souhaiterai que la macro ne se lance qu'une fois que la valeur passe de >0 à <=0.
Comment faire?

Merci d'avance.

VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Range("v9") <= 0 Then
Call Mail
End If
End Sub
 
Re,

Un essai en utilisant l'évènement Calculate de la feuille "Feuil1" :

A chaque (re)calcul de Feuil1, on compte le nombre de valeurs négatives de la plage v9:v200:
  • si c'est différent de zéro et si on n'a pas déjà exécuté Mail alors on exécute mail et on passe l'indicateur MailExec à true.
  • si c'est différent de zéro et si on a déjà exécuté Mail, alors on ne fait rien
  • si c'est égal à zéro, on repasse simplement l'indicateur MailExec = false (ce qui implique qu'à la prochaine apparition d'une nouvelle valeur négative, on exécutera à nouveau Mail). On fait donc une espèce de "remise à zéro"
Code dans le module de la feuille "Feuil1" :
VB:
Option Explicit
Dim MailExec As Boolean

Private Sub Worksheet_Calculate()
Dim nbrNegatif&
   nbrNegatif = [countif(v9:v220,"<=0")]
   If nbrNegatif > 0 Then
      If Not MailExec Then
         mail
         MailExec = True
      End If
   Else
      MailExec = False
   End If
End Sub
 

Pièces jointes

Re,

Un essai en utilisant l'évènement Calculate de la feuille "Feuil1" :

A chaque (re)calcul de Feuil1, on compte le nombre de valeurs négatives de la plage v9:v200:
  • si c'est différent de zéro et si on n'a pas déjà exécuté Mail alors on exécute mail et on passe l'indicateur MailExec à true.
  • si c'est différent de zéro et si on a déjà exécuté Mail, alors on ne fait rien
  • si c'est égal à zéro, on repasse simplement l'indicateur MailExec = false (ce qui implique qu'à la prochaine apparition d'une nouvelle valeur négative, on exécutera à nouveau Mail). On fait donc une espèce de "remise à zéro"
Code dans le module de la feuille "Feuil1" :
VB:
Option Explicit
Dim MailExec As Boolean

Private Sub Worksheet_Calculate()
Dim nbrNegatif&
   nbrNegatif = [countif(v9:v220,"<=0")]
   If nbrNegatif > 0 Then
      If Not MailExec Then
         mail
         MailExec = True
      End If
   Else
      MailExec = False
   End If
End Sub
Merci pour ton aide, par contre ça marche pour qu'une seul ligne par exemple si V10= 0 la macro se lance mais par contre si ensuite V19= -1 la macro ne se lance plus.

Je voudrais qu'à chaque fois qu'une des valeurs passent à 0 ou < 0 le mail soit envoyé.
Pour te donner un peu le contexte je prépare une gestion de stock et cette macro serait pour envoyer une alerte par mail lorsque le stock descend sous le stock minimum .
 
Merci pour ton aide, par contre ça marche pour qu'une seul ligne par exemple si V10= 0 la macro se lance mais par contre si ensuite V19= -1 la macro ne se lance plus.

Je voudrais qu'à chaque fois qu'une des valeurs passent à 0 ou < 0 le mail soit envoyé.
Pour te donner un peu le contexte je prépare une gestion de stock et cette macro serait pour envoyer une alerte par mail lorsque le stock descend sous le stock minimum .
Ci-joint le fichier
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
147
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
250
Réponses
4
Affichages
507
Retour