Bob a demandé s’il était possible d’écrire une formule et d’obtenir la réponse dans un commentaire, plutôt que dans une cellule. La réponse courte est que non, vous ne pouvez pas le faire avec une formule. Vous pouvez cependant le faire avec une macro. Par exemple, la macro suivante ajoute le contenu de deux cellules (A1 et B1) puis colle le résultat dans un commentaire attaché à la cellule C1:

Sub MakeComment()

With Worksheets(1).Range("C1").AddComment         .Visible = True         .Text "Total of cell A1 plus cell B1 is equal to " & _           ([A1].Value) + ([B1].Value)

End With End Sub

Si vous préférez exécuter la macro sur une plage de cellules, une approche différente est nécessaire. La macro suivante parcourt toutes les cellules d’une sélection. Si la cellule contient une formule, la macro place la valeur (le résultat de la formule) dans un commentaire attaché à cette cellule.

Sub ValueToComment()

Dim rCell As Range     For Each rCell In Selection         With rCell             If .HasFormula Then                 On Error Resume Next                 .Comment.Delete                 On Error GoTo 0                 .AddComment                 .Comment.Text Text:=CStr(rCell.Value)

End If         End With     Next     Set rCell = Nothing End Sub

Lors de la lecture en boucle des cellules de la sélection, si l’une des cellules contient une formule et un commentaire existant, le commentaire est supprimé et remplacé par le nouveau commentaire contenant le résultat de la formule.

Ensuite, la valeur de la cellule s’affichera ainsi qu’un commentaire avec le même numéro. Au lieu de CStr, vous pouvez également utiliser la fonction Format pour afficher la valeur comme vous le souhaitez.

Vous pouvez également créer une macro qui modifiera un commentaire chaque fois que vous mettez à jour le contenu d’une cellule particulière. Par exemple, disons que chaque fois que quelqu’un a fait un changement dans la cellule C11, vous vouliez que le résultat de tout ce qui se trouve dans cette cellule soit placé dans un commentaire attaché à la cellule F15. La macro suivante fait exactement cela:

Private Sub Worksheet_Change(ByVal Target As Range)

Dim sResult As String

If Union(Target, Range("C11")).Address = Target.Address Then         Application.EnableEvents = False         Application.ScreenUpdating = False         sResult = Target.Value         Target.ClearContents

With Range("F15")

.ClearComments             .AddComment             .Comment.Text Text:=sResult         End With         Application.EnableEvents = True         Application.ScreenUpdating = True     End If End Sub

Quand quelqu’un entre une formule (ou une valeur) dans la cellule C11, les résultats de cette formule (ou la valeur elle-même) sont placés dans un commentaire qui est attaché à la cellule F15. Puisqu’il s’agit d’une macro déclenchée par un événement, elle doit être saisie dans la fenêtre de code de la feuille de calcul sur laquelle elle fonctionnera.

Enfin, vous souhaiterez peut-être que votre macro surveille une colonne entière. La macro suivante utilise l’événement Change d’une feuille de calcul, tout comme la macro précédente. Cependant, il ne prend effet que si la modification a été effectuée dans la colonne F et uniquement si une seule cellule de cette colonne a été modifiée.

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Cells.Count > 1 Then Exit Sub     If Target.Column <> 6 Then Exit Sub

Dim x As String     Application.EnableEvents = False     If Target.HasFormula Then         x = Evaluate(Target.Formula)

Else         x = Target.Text     End If

Target.ClearComments     If Target.Text = "" Then         Application.EnableEvents = True         Exit Sub     End If

Target.AddComment x     Target = ""

Application.EnableEvents = True End Sub

Si l’utilisateur modifie une seule cellule de la colonne F, la macro saisit le résultat de ce qui a été entré et le place dans un commentaire attaché à cette cellule. Le contenu de la cellule est ensuite supprimé.

_Note: _

Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.

lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur].

ExcelTips est votre source pour une formation Microsoft Excel rentable.

Cette astuce (13038) s’applique à Microsoft Excel 2007, 2010, 2013, 2016, 2019 et Excel dans Office 365. Vous pouvez trouver une version de cette astuce pour l’ancienne interface de menu d’Excel ici:

link: / excel-Placing_Formula_Results_in_a_Comment [Placer les résultats de la formule dans un commentaire].