XL 2013 Affichage de msgbox uniquement si l'erreur est répétée

Jewoko

XLDnaute Nouveau
Bonjour à tous,

Je suis en train de faire un fichier Excel permettant aux encadrants de mon entreprise d'avoir un message en cas de problème récurent. Ainsi des objectifs sont fixés pour les jours et pour la semaine.
J'ai donc essayé de faire une macro pour les objectifs jours, à savoir que le total est masqué dans les cellules X et que si il dépasse l'objectif du jour en K5 une msgbox s'active.
J'ai aussi essayer de suivre la démarche d'un problème similaire mais je dois avouer que je me n'ai pas compris l'utilisation de TypeName et de ThisWorkbook qui j'imagine doivent être une solution à mon problème :

Mon problème est donc le suivant, si le message s'affiche une fois il va se répéter même si la valeur de X10 ne change pas ou qu'une valeur est ajouté à une autre cellule que la ligne 10.
Voici mon code:
VB:
Private Sub Worksheet_calculate()
'Range pour selectionner les cellules concernées'
If Range("X10") > Range("K5") Then
MsgBox "Attention !!! Problème récurrent", vbExclamation
    End If
End Sub

Dans un deuxième temps j'ai essayé de faire cela pour mes 33 autres lignes mais j'ai une erreur de compilation que je ne comprends pas. Si en plus de mon premier problème vous pouviez m'aider à résoudre ce problème ce serait très gentil.

Si nécessaire je vous joint mon tableau pour que vous puissiez mieux comprendre l'organisation de mon tableau.

En vous remerciant par avance de votre temps accordé pour mon problème.
 

Pièces jointes

  • Tour terrain.xlsm
    65.1 KB · Affichages: 3

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour @Jewoko, bienvenue sur XLD :)

Pour le premier point, dans le module de la feuille, on peut tenter :
Code:
Option Explicit
Dim DeuxEtPlus As Boolean

Private Sub Worksheet_calculate()
  If Range("X10") > Range("K5") Then
    If Not DeuxEtPlus Then MsgBox "Attention !!! Problème récurrent", vbExclamation
    DeuxEtPlus = True
  End If
End Sub

Private Sub Worksheet_Deactivate()
  DeuxEtPlus = False
End Sub

La variable DeuxEtPlus est remise à zéro quand on quitte la feuille (c'est selon ce que vous voulez). On pourrait aussi choisir l'évènement Activate à la place de Deactivate.
 

Jewoko

XLDnaute Nouveau
Bonjour @mapomme, merci pour l’accueil et la réponse rapide :)

D'après ce que j'ai compris avec ce code, c'est en fermant la feuille qu'il s'applique mais dès que je rouvre ma feuille et que je rentre une nouvelle valeur en plus de celle de lundi par exemple pour mardi, je reviens au même problème. (La valeur ajoutée étant égale à 0 et ne modifiant donc pas X10)
Il faut bien rentrer ce code pour la feuille et non pas créer un module ?
 

Discussions similaires

Réponses
7
Affichages
309

Statistiques des forums

Discussions
311 730
Messages
2 081 991
Membres
101 856
dernier inscrit
Marina40