Autres Mise en forme automatique des Commentaires sous Excel 2007

Jybe

XLDnaute Nouveau
Bonjour,

J'ai pas mal fouillé dans ce site (sans avoir trouvé Graal) avant de me décider à poster ma question :
Existe-t-il sous Excel 2007 un moyen de mettre en forme - sur plusieurs feuilles - tous les commentaires : largeur fixe, hauteur automatique ?
Je vous précise que je suis une bille en VBA :eek:)
Merci d'avance pour vos réponses

JB
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil, Jybe

Jybe
Voir dans ce fil de quoi t'inspirer
 

Jybe

XLDnaute Nouveau
J'ai une pop-up qui me dit :

Erreur de compilation :
Utilisation incorrecte du mot clé Me

Est-ce que ça vient du fait que j'utilise Excel 2007 ?
 

Staple1600

XLDnaute Barbatruc
Re,

Tu as bien le code dans un module standard?
C'est cette macro que tu as testée?
VB:
Sub cAutoSize()
Dim c As Excel.Comment
For Each ws In Worksheets
For Each c In ws.Comments
c.Shape.TextFrame.AutoSize = -1
Next c
Next ws
End Sub
 

Jybe

XLDnaute Nouveau
J'avais testé une autre macro ...
Là je viens de tester celle que tu m'indiques, et ce n'est pas exactement ce que je cherche puisque la largeur est variable ...
(mais merci qd même de m'avoir montré cette macro)
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil

Il suffit d'adapter le code en ajoutant les propriétés idoines...
Un exemple ci-dessous
VB:
Sub FormaterCommentaires()
Dim c As Excel.Comment
For Each ws In Worksheets
For Each c In ws.Comments
c.Shape.Height = 100
c.Shape.Width = 100
c.Shape.Fill.ForeColor.RGB = RGB(170, 255, 155)
c.Visible = True
'c.Shape.TextFrame.AutoSize = -1
Next c
Next ws
End Sub
A toi d'adapter selon tes desiderata.
 

Staple1600

XLDnaute Barbatruc
Re

Un exemple plus complet (mais testé sur Excel 2013)
Je ne sais pas ce qu'il en sera sur Excel 2007
VB:
Sub Formater_Commentaires_II()
'NB:
'Si incompatible avec Excel 2007
'dans ce cas, mettre un ' devant la ligne de code ne fonctionnant pas
Dim c As Excel.Comment
For Each ws In Worksheets
  For Each c In ws.Comments
    c.Shape.OLEFormat.Object.AutoSize = True
    With c.Shape.TextFrame.Characters.Font
    .ColorIndex = 12
    .Size = 10
    End With
    c.Shape.Line.ForeColor.RGB = RGB(0, 0, 0)
    c.Shape.Line.BackColor.RGB = RGB(255, 255, 255)
    c.Visible = True 'mettre sur False pour ne pas afficher le commentaire en permanence
    c.Shape.Fill.ForeColor.RGB = RGB(170, 255, 155)
    c.Shape.Fill.OneColorGradient 3, 1, 0.27
    With c.Shape.Shadow
      .Type = 2
      .ForeColor.SchemeColor = 12
      .OffsetX = 3.5
      .OffsetY = 3.5
      .Visible = msoTrue
    End With
  Next c
Next ws
End Sub
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re, Bonjour patricktoulon

patricktoulon
Où est le piège?
Car je sens qu'il y a un piège derrière ta question, non ? ;)
 

patricktoulon

XLDnaute Impliqué
bonjour Staple160
:D:Dnon il n'y a pas de piège

je me dis qu'ajouter un commentaire puis les passer tous en revue et sur chaque feuilles pour les modifier alors qu'on peut modifier seulement celui qui est ajouté (si par vba)
et si c'est manuel il est aisé de modifier l'item du menu cell et l'orienter vers une fonction remplaçant la fonction interne du bouton
si bien que un seul commentaire est passer en revue a chaque fois ;)

c'est une idée comme çà en passant

d'autre part

n'y a t'il pasun probleme avec ".font" ;)
VB:
 With c.Shape.TextFrame.Characters.Font
    .ColorIndex = 12
    .Font.Size = 10
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re

patricktoulon
[aparté]
Si on doit inciter les utilisateurs "novices" d'Excel dès leur entrée dans leur noviciat à utiliser Excel dans les règles de l'art (en privilégiant les fonctions natives, les raccourcis clavier, le pilotage à la souris (TCD, filtre etc...), on n'est pas rendu, ma pauvre Lucette !!
[/aparté]
(oui, je sais je plagie la pub Tipiak ;))

Le demandeur a écrit le mot VBA dans son message, alors le répondeur (que je suis) a bêtement pondu du VBA. ;)

EDITION: Merci j'ai corrigé (erreur de copier/coller)
 

patricktoulon

XLDnaute Impliqué
re
juste pour le fun mais vraiment pour le fun et la on est en plein vba

VB:
Sub ModifBarCel() ' a lancer a l'open ou l'activate d'un sheets en particulier(prévoir un reset de la bar  a la fermeture du fichier
Dim i&
Set bar = CommandBars("cell")
bar.Reset
For Each b In bar.Controls
i = i + 1
If b.Caption = "Insérer un co&mmentaire" Then b.Enabled = False: Exit For
Next
Set bout = bar.Controls.Add(msoControlButton, before:=i + 1)
bout.Caption = "commentaire Vert"
bout.OnAction = "'AddCommentPerso " & Chr(34) & 12 & """,""" & 10 & """,""" & 0 & """,""" & vbWhite & """,""" & RGB(170, 255, 155) & """,""" & 3.5 & "'"
Set bout = bar.Controls.Add(msoControlButton, before:=i + 2)
bout.Caption = "commentaire rouge"
bout.OnAction = "'AddCommentPerso " & Chr(34) & 9 & """,""" & 10 & """,""" & 0 & """,""" & vbWhite & """,""" & vbRed & """,""" & 3.5 & "'"
End Sub



Sub AddCommentPerso(fontcolor, fontsize, linecolor, bagroundcolor, fillforcolor, offsetXY)
MsgBox fontsize
'tu sais ce qu'il te reste a faire ici :)
End Sub
 

Staple1600

XLDnaute Barbatruc
Re

patricktoulon
Ton précédent fil m'a fait aller farfouiller dans les options d'Excel
Apparemment on ne peut pas créer un style de commentaire par défaut
(Bien qu'il existe un style nommé Commentaire mais qui s'applique qu'aux cellules)
Il y a bien ceci pour les version supérieures à 2007
Mais je pensais qu'on pouvait modifier à la mimine le format par défaut des commentaires.
Tu confirmes que ce n'est pas possible?
 

patricktoulon

XLDnaute Impliqué
re
oui sur 2007 les options sont étonnamment inopérantes
va savoir pourquoi on a un dialog "format de commentaire" pour qu'il soit inopérant :rolleyes:
voila une petite boite de dialogue perso qui m'amuserait a faire ;)
je vais tester sur 2013
edit:
pareille sur 2013
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re

Quand tu insères un commentaire manuellement puis que tu le sélectionnes (clic-droit)
au dessus de Format de commentaire, on trouve:Définir comme attributs par défaut
Cela s'applique à quoi?
à la cellule?
au commentaire?
 

patricktoulon

XLDnaute Impliqué
re
bon ben tu va pas le croire
je viens de faire des tests car il me semblais bien que j'avais des fichiers avec commentaires en couleurs
et en effet sauf que se sont des xls
j'i donc tester voir si je me trompais pas et refermé le xls(version 2003)
et quand j'ouvre un nouveau fichier donc XLSX(2007 et +) apres la fermeture du XLS ET BIEN JE TE LE DONNE DANS LE MILLE LE DIALOG FONCTIONNE

encore une énigme a découvrir

pour l'item du menu je vais voir ce que c'est

edit: je supose que ca s'adresse au commentaire sinon l'item serait aussi présent dans le menu"cell"
 
Dernière édition:

Jybe

XLDnaute Nouveau
Ouch !!
Que de réponses !!
Je vais tester vos solutions en arrivant chez moi.
Merci pour votre implication, je vous diraisi une de vos solutions fonctionne pour moi
 

Jybe

XLDnaute Nouveau
Alors, j'ai testé celle-là :


Sub Formater_Commentaires_II()
'NB:
'Si incompatible avec Excel 2007
'dans ce cas, mettre un ' devant la ligne de code ne fonctionnant pas
Dim c As Excel.Comment
For Each ws In Worksheets
For Each c In ws.Comments
c.Shape.OLEFormat.Object.AutoSize = True
With c.Shape.TextFrame.Characters.Font
.ColorIndex = 12
.Size = 10
End With
c.Shape.Line.ForeColor.RGB = RGB(0, 0, 0)
c.Shape.Line.BackColor.RGB = RGB(255, 255, 255)
c.Visible = True 'mettre sur False pour ne pas afficher le commentaire en permanence => j'ai mis False
c.Shape.Fill.ForeColor.RGB = RGB(170, 255, 155)
c.Shape.Fill.OneColorGradient 3, 1, 0.27
With c.Shape.Shadow
.Type = 2
.ForeColor.SchemeColor = 12
.OffsetX = 3.5
.OffsetY = 3.5
.Visible = msoTrue
End With
Next c
Next ws
End Sub

Mais ça me met pas la large constante pour les commentaires ... :\
 

Discussions similaires


Haut Bas