Mes commentaires se sont enfuis à l'est de leurs cellules

  • Initiateur de la discussion monsieurPatate
  • Date de début
M

monsieurPatate

Guest
Bonsoir le forum,

J'ai inséré des commentaires dans certaines cellules.
À ma stupéfaction, certains de ces commentaires sont partis loins vers l'est; ils sont affichés plusieurs colonnes à droite de la cellule d'origine.

Y'a t'il moyen via VBA de ramener près de la cellule auquel il appartient ce dit commentaire?

Merci et bon weekend
 
C

Celeda

Guest
Bonjour,

Voici une macro que j'ai retrouvée de :

Auteur: @+Thierry
Date: 26-12-02 19:02


Bon alors tu places ce code dans le Private module de ThisWorkbook si tu veux l'avoir en ouverture...

Private Sub Workbook_Open()
Set cmt = Sheets("feuil1").Comments
For Each c In cmt
c.Shape.TextFrame.AutoSize = True
Next
End Sub

et tu n'auras plus aucun de tes soucis


Teste la et reviens nous dire si tout est Ok pour toi.

Celeda
 
M

Mytå

Guest
Salut MonsieurPatate, Celeda et le Forum

Pour repositionner les commentaires près de leur cellule respective plutot ceci :

Sub ResetComments()
Dim cmt As Comment
For Each cmt In ActiveSheet.Comments
cmt.Shape.Top = cmt.Parent.Top + 5
cmt.Shape.Left = cmt.Parent.Offset(0, 1).Left + 5
Next
End Sub

Mytå
 
M

monsieurPatate

Guest
Bonjour Celeda, Mytå, le forum

la routine ResetComments() corrige mon problème; merci beaucoup Mytå.

Celeda ta routine est intéressante puisqu'elle ajuste la forme du commentaire au contenu. Mes nombreux commentaires sont parfois longs et le contenu déborde de la forme originale.
Seul problème: le contenu est ajusté sur une seule ligne au lieu de respecter la forme originale, i.e. les retours de chariot.

Y'a t-il moyen d'ajuster le forme du commentaire au contenu sans que qu'il l'Ajuste sur une seule ligne?

Bye!
 
C

Celeda

Guest
Bonjour,


Sur l'excellent site de Steph on the web,
http://xlbysteph.free.fr/aideinformatique/mainexcel.html

il y a plusieurs codes pour les commentaires,

j'ai essayé celui-ci qui ajuste la taille des commentaires en fonction de retour ou pas de chariot,

peux-tu tester et voir comment cela se comporte chez toi, svp,

Sub Comments_AutoSize()
Dim MyComments As Comment
Dim lArea As Long
For Each MyComments In ActiveSheet.Comments
With MyComments
.Shape.TextFrame.AutoSize = True
If .Shape.Width > 300 Then
lArea = .Shape.Width * .Shape.Height
.Shape.Width = 200
' An adjustment factor of 1.1 seems to work ok.
.Shape.Height = (lArea / 200) * 1.1
End If
End With
Next ' comment
End Sub


Celeda
 
M

monsieurPatate

Guest
Bonjour Celeda, le forum

Excellent!

Merci beaucoup Celeda, les ajustements sont parfaits avec ces quelques lignes.
Ça va réellement me faciliter la tâche
(il y a au dessus de 150 commentaires dans mon classeur)

Bye!
 

Discussions similaires

Statistiques des forums

Discussions
312 785
Messages
2 092 083
Membres
105 190
dernier inscrit
Didierbdx