Placement des résultats de formule dans un commentaire (Microsoft Excel)
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]
.