Peggy a plusieurs cellules dans une feuille de calcul auxquelles sont associés des commentaires. Lorsqu’elle clique avec le bouton droit sur l’une de ces cellules, elle peut choisir Modifier le commentaire dans le menu contextuel résultant afin de modifier le commentaire. Si le commentaire était celui qu’elle a créé lors d’une session précédente avec Excel, il n’est pas inhabituel que le commentaire s’ouvre ailleurs dans la feuille de calcul, parfois à plusieurs écrans. Peggy se demande s’il existe un moyen de faire apparaître le commentaire à côté de la cellule qui l’accompagne.

Cette condition peut être causée par plusieurs choses. Par exemple, il est possible que lors de la modification précédente du commentaire, vous ayez cliqué sur la bordure de la zone de commentaire et fait glisser le commentaire vers un autre endroit de la feuille de calcul. Si vous avez fait cela, Excel se souvient de l’endroit où le commentaire a été déplacé et l’affiche toujours à l’emplacement mémorisé.

Une autre cause fréquente est que vous effectuez un filtrage sur vos données, ce qui entraîne le masquage de certaines lignes ou colonnes lorsque le filtre est en place. Si vous modifiez ensuite les commentaires dans les cellules filtrées, vous avez effectivement «déplacé» le commentaire de l’emplacement d’origine vers un nouvel emplacement associé à la ligne ou à la colonne visible à l’écran. Lorsque vous supprimez ultérieurement le filtre et que vous essayez de modifier le commentaire, il se souvient de l’endroit où il a été précédemment modifié, et c’est là que la nouvelle opportunité de modification a lieu.

Dans ces deux cas, la solution normale consiste simplement à sourire et à le supporter – déplacez manuellement les cellules de l’endroit où elles se trouvent à l’endroit où vous les voulez.

Cependant, si vous rencontrez ce problème avec beaucoup de cellules, tout le déplacement manuel peut être un vrai problème. Dans ce cas, vous souhaiterez peut-être utiliser une macro pour effectuer le déplacement à votre place.

Sub MoveComments1()

Dim cmt As Comment

For Each cmt In ActiveSheet.Comments         With cmt           .Shape.Top = .Parent.Top           .Shape.Left = .Parent.Offset(0, 1).Left         End With     Next cmt End Sub

Cette macro déplace tous les commentaires dans une feuille de calcul afin que leur coin supérieur gauche soit le même que le coin supérieur droit de la cellule à laquelle ils sont attachés. Cela place les commentaires juste à côté de leurs cellules, c’est là que vous les voulez.

Si vous souhaitez ajuster tous les commentaires dans un classeur entier, ainsi que « redimensionner automatiquement » chacune des zones de commentaires, vous pouvez utiliser cette variante sur la macro:

Sub MoveComments2()

Dim wbk As Workbook     Dim wks As Worksheet     Dim cmt As Comment     Dim rngC As Range     Dim lArea As Long

Set wbk = ActiveWorkbook

On Error Resume Next

For Each wks In wbk.Worksheets         For Each cmt In wks.Comments             With cmt                 .Shape.TextFrame.AutoSize = True                 If .Shape.Width > 200 Then                     lArea = .Shape.Width  .Shape.Height                     .Shape.Width = 200                     .Shape.Height = (lArea / 200)  1.1                 End If                 .Shape.Top = .Parent.Top                 .Shape.Left = .Parent.Offset(0, 1).Left             End With         Next cmt     Next wks End Sub

_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 (9703) s’applique à Microsoft Excel 2007, 2010 et 2013. Vous pouvez trouver une version de cette astuce pour l’ancienne interface de menu d’Excel ici:

link: / excel-Editing_a_Comment_Close_to_Its_Cell [Modification d’un commentaire près de sa cellule].