Commentaire conditionnel
Catégorie : Commentaires
Publié par veriland le 11-Aug-2013 16:10

Pour utiliser cette macro, il convient de sélectionner la cellule "Cible

 

pour le commentaire ...

--> faire menu Format / Mise en forme conditionnelle...., 

--> choisir "La formule est" et saisir une formule "fictive" sous la forme : mDF(Condition;Message).
 
Par exemple, dans la cellule D10 :
mDF(A1>7;Salut Jean-Yves, ça te convient ?)

mdf

 

Ainsi fait, si vous indiquez en A1 une valeur supérieure à 7, un commentaire sera créé automatiquement en D10...


Code à placer dans un module de feuille

module


Option Explicit
'-------------------------------------------------------------------
' Auteur : Didier Fourgeot (myDearFriend!)
' Date : 18/04/2005
' Sujet : Commentaires Conditionnels ?
'-------------------------------------------------------------------

Private Sub Worksheet_Change(ByVal Target As Range)
Dim FC As FormatCondition
Dim F As String
Dim RF As String
Dim Cellule As Range
For Each Cellule In Cells.SpecialCells(xlCellTypeAllFormatConditions)
With Cellule
For Each FC In Cellule.FormatConditions
If FC.Type = xlExpression Then
F = FC.Formula1
RF = Formule(F)
.ClearComments
If RF <> "" Then
.AddComment RF
.Comment.Visible = True
End If
End If
Next FC
End With
Next Cellule
End Sub

Private Function Formule(T As String) As String
Dim Fml As String
If T Like "*mDF(*" Then
Fml = Mid(T, InStr(1, T, "mDF(") + 4)
Fml = Left(Fml, InStr(1, Fml, ";") - 1)
If Not Evaluate(Fml) Then Exit Function
Formule = Mid(T, InStr(1, T, ";") + 1)
Formule = Left(Formule, Len(Formule) - 2)
End If
End Function