Afficher Message selon MFC

CelluleVide

XLDnaute Occasionnel
Bonjour le forum,
Dans le classeur joint, j'ai des resultat hebdomadaires avec des MFC selon l'objectif de chaque groupe.
Je voudrais affficher un message si la valeur saisie n'est pas conforme a l'objectif.
Le probleme est que l'objectif est une valeur qui est la limite maxi ou bien mini selon les groupes.
Ex: Equipe 1 objectif ==> OK si supérieur à 10
Equipe 3 objectif ==>OK si inférieur à 8
L'info du sens de l'objectif ne se trouve que dans la mise en forme conditionnelle associée a la cellule.

Ce qu'il faudrait c'est le message n'apparaissent que si la MFC est rouge.

Je pense que le fichier sera plus clair...
 

Pièces jointes

  • Forcer Commentaires.xlsm
    21.2 KB · Affichages: 48
G

Guest

Guest
Re : Afficher Message selon MFC

Bonjour,

Peut-être pas necessaire d'invoquer la MFC puisque la limite est en colonne B:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 'Définir la plage d'application:
   If Not Intersect([C4:M11], Target) Is Nothing And Target.Count = 1 Then
     Application.EnableEvents = False
      If Target < Cells(Target.Row, 2) Then
       MsgBox ("Votre saisie n'est pas conforme a l'objectif, Veuillez en saisir les raisons en commentaire")
       Target.ClearComments
       Target.AddComment "Votre commentaire"
       Target.Comment.Visible = True
     End If
     Application.EnableEvents = True
   End If
 End Sub

A+
 

chris

XLDnaute Barbatruc
Re : Afficher Message selon MFC

Bonjour

Je trouve lourd et source d'erreur d'avoir à faire 2 MFC par équipe.

Par ailleurs c'est assez usine à gaz de décomposer les MFC par VBA.

Pourquoi ne pas prévoir plutôt >=8 ou <=8 dans la colonne (ou le signe + ou - dans une autre colonne) et faire une MFC identique pour toutes les équipes ?

Cela en plus serait plus lisible...

Par ailleurs tu peux coupler avec une validation et c'est celle-ci qui affiche le message.

Edit Coucou Hasco;)
 
Dernière édition:
G

Guest

Guest
Re : Afficher Message selon MFC

Re,

Alors tu peux essayer avec Target.displayFormat (uniquement sur excel >2007):

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 'Définir la plage d'application:
   If Not Intersect([C4:M11], Target) Is Nothing And Target.Count = 1 Then
     Application.EnableEvents = False
       On Error Resume Next
         
     If Target.DisplayFormat.Interior.Color = 255 Then
      MsgBox ("Votre saisie n'est pas conforme a l'objectif, Veuillez en saisir les raisons en commentaire")
       Target.clearComments
       Target.AddComment Text:=CStr("VOTRE COMMENTAIRE")
         Target.Comment.Shape.TextFrame.AutoSize = True
     End If
     Application.EnableEvents = True
   End If
 End Sub

A+
 
Dernière modification par un modérateur:

CelluleVide

XLDnaute Occasionnel
Re : Afficher Message selon MFC

Bonjour Hasco, Chris,

Chris, Je suis bien d'accord avec toi sur le fait que cette présentation est lourde et source d'erreur mais je ne suis pas l'auteur du fichier et je ne peux pas en imposer la modification.

C'est bien la solution d'Hasco qui met fin a mes tracas!

Un grand merci pour votre aide!

Bonne journée.
 
G

Guest

Guest
Re : Afficher Message selon MFC

Re,

C'est bien la solution d'Hasco qui met fin a mes tracas

Tu as bien noté qu'elle n'est valable que pour Excel >2007?

Chris a raison, pour peu qu'un lambda change la couleur de la MFC et ta macro sera a corriger!

P.S. coucou Chris:):) je ne t'avais point vu...arf
 
Dernière modification par un modérateur:

Discussions similaires