Menu

Remise des commentaires à côté de chaque cellule

rubisdor - 11 mai 2018 à 16:50 - Dernière réponse :  rubisdor
- 13 mai 2018 à 22:03
Bonjour,
Il m'arrive de mettre beaucoup de commentaires dans les cellules. Je peux déplacer ces commentaires d'endroit pour éviter qu'ils ne viennent cacher le contenu des cellules suivantes. Il m'est arrivé lors de l' enregistrement et ensuite à l'ouverture du fichier de voir des commentaires complètement ailleurs. exemple: en A1 une donnée, mise d'un commentaire sur cette cellule et ensuite je le déplace un peu plus loin sur la feuille. J'enregistre le fichier et lors de l'ouverture mon commentaire ne se retrouve plus à l'endroit que j'avais mis et se retrouve par exemple au niveau de la cellule H75 ce qui m'oblige de le déplacer à nouveau à un endroit plus opportun. Lorsqu'il s'agit d'une seule cellule, cela ne me pose pas de problème mais quand il s'agit de plusieurs centaines de commentaires qui ne sont plus à côté de la cellule là je la trouve vraiment mauvaise.
Comment peux t on demander à remettre tous les commentaires à côté des cellules qui les contiennent.
Merci pour votre aide
Afficher la suite 

Votre réponse

6 réponses

Vaucluse 22046 Messages postés lundi 23 juillet 2007Date d'inscriptionContributeurStatut 26 mai 2018 Dernière intervention - Modifié par Vaucluse le 11/05/2018 à 16:57
0
Merci
Bonjour
pas facile, ...sinon d'écrire directement le commentaire dans la cellule d'à coté plutôt que de l'insérer.
Mais pourquoi ne pas les masquer pour qu'ils ne soient visibles que un par un quand vous sélectionnez un e c ellule?
crdlmnt

Merci, j'y avais pensé mais mes commentaires sont très longs et cela n'est pas très pratique. Si je ne trouve pas d'autres solutions pour résoudre ce problème il faudra que je me résigne à votre soltion
Cordialement
Commenter la réponse de Vaucluse
Patrice33740 6849 Messages postés dimanche 13 juin 2010Date d'inscription 26 mai 2018 Dernière intervention - 11 mai 2018 à 18:39
0
Merci
Bonjour,

Avec une macro dans le module de feuille (à adapter) :
Private Sub AlignerCommentaires()
Dim rng As Range
Dim cel As Range
Dim cmt As Comment
  Set rng = Me.Range("A3:A200") ' à adapter
  For Each cel In rng.Cells
    Set cmt = cel.Comment
    If Not cmt Is Nothing Then
      With cmt
        .Visible = True
        .Shape.Top = cel.Top + 1.5
        .Shape.Left = [C1].Left + 18  ' à adapter
      End With
    End If
  Next cel
End Sub


Tout d'abord merci pour votre solution. Je ne connais malheureusement pas le VBA mais je devine ce que fait le petit programme. Je ne doute pas que c'est là qu'il faut trouver ma solution à mon problème.
Si je comprends bien vous définissez une sous routine en paramétrant les variables rng, cel, Cmt, Vous demandez à la sous routine de travailler dans la zone A3 jusqu'à A200 et je suppose que c'est la zone à adapter. Et mettre ma zone comme par exemple ("A1:Z1000")
Ensuite s'il y a un commentaire vous le rendez visible. Que veut dire
.Shape.Top = cel.Top + 1.5
.Shape.Left = [C1].Left + 18 (que dois je adapter ici?)
et je ne vois pas pourquoi vous mettez pour le shape.Top = cel.Top et pour le shape.Left= [C1]. Et pas aussi cel.Left et pourquoi +18?
Lorsque je recopie votre petit programme dans une macro et que je l'exécute, il me signale qu'il manque un end sub alors que je l'ai bien.
Merci pour votre aide bien précieuse.
Patrice33740 6849 Messages postés dimanche 13 juin 2010Date d'inscription 26 mai 2018 Dernière intervention - 12 mai 2018 à 21:27
Bonjour,

Cette petite routine permet de positionner les commentaires de la plage A3:A200.
Il faut la placer dans le module de la feuille qui contient les commentaires :
- Sélectionner et copier le texte complet de la macro ci-dessus.
- Clic droit sur l'onglet de la feuille / visualiser le code
- Coller

.Shage.Top = cel.Top + 1.5 définit la position verticale du commentaire (i.e. la distance entre le bord supérieur du commentaire et le bord supérieur de la feuille de calcul) = position de la cellule qui contient le commentaire +1.5 (1.5 pour décaler légèrement le commentaire vers le bas de façon que la flèche qui le relie à la cellule soit horizontale)

.Shape.Left = [C1].Left + 18 définit la position horizontale du commentaire = la position de la cellule C1 + 18. Cette dernière commande était proposée en supposant que tous les commentaires soient dans la même colonne A, elle place les commentaires au dessus de la colonne C qui est vide.

Si tes commentaires sont dans plusieurs colonnes différentes, il est plus difficile de les placer automatiquement sur une plage de cellules non-vides
Merci vraiment Patrice pour ta précieuse aide et tes explications claires, tu m'évites bien des manipulations. C'est vraiment sympa de pouvoir compter sur l'aide de personnes bien plus expérimentées qui ont le souci d'aider les autres.
Commenter la réponse de Patrice33740