La formule active en commentaire
Dans le dernier article, nous
avons vu comment afficher dans une cellule le texte de la formule de la cellule
voisine à gauche.
Cette solution est assez
intéressante pour les personnes qui, comme moi, animent des séminaires de
formation autour d’Excel.
En ce qui me concerne, j’enseigne
aussi fréquemment à des clientèles internationales. Il m’arrive donc souvent d’utiliser
mon Excel en français pour animer une formation en anglais. Dans ce cas, quand
j’entre dans mon Excel français une formule un peu complexe dans une cellule,
outre le fait que je dis en anglais ce qu’il faut entrer dans la cellule, je
renforce mon message en affichant dans la cellule un commentaire avec la
formule en anglais, comme vous pouvez le voir dans la copie d’écran ci-dessus.
J’ai pour cela mis dans mon
classeur de macros personnelles la macro suivante, à laquelle j’ai attribué un
raccourci permettant de l’appeler par [Ctrl]-f :
Sub Formule_comm()
'
' Touche de raccourci du
clavier: Ctrl+f
'
ActiveCell.ClearComments
ActiveCell.AddComment
ActiveCell.Comment.Text
Text:=ActiveCell.Formula
ActiveCell.Comment.Visible = True
End Sub
Remarque – Il faut commencer
par effacer le commentaire actuel, au cas où il y en aurait un. En effet, quand
une cellule possède déjà un commentaire, on ne peut pas lui en ajouter un…
Si l’on veut mettre en
commentaire la formule en français, il suffit de remplacer « ActiveCell.Formula »
par « ActiveCell.FormulaLocal ».
La seule chose que j’aurais
aimé pouvoir faire aurait été de dimensionner le commentaire en fonction de la
place prise par le texte… Si vous avez la solution, je suis preneur !
4 Commentaire(s):
on peut faire un bricolage de ce genre:
ActiveCell.Comment.Shape.ScaleWidth 1, msoFalse, msoScaleFromTopLeft
ActiveCell.Comment.Shape.ScaleHeight 0.27 * (Round(Len(ActiveCell.Comment.Text) / 20, 0)), msoFalse, msoScaleFromTopLeft
(j'impose 1 de largeur soit environ 20 caractères et j'ajuste la hauteur)
By Philippe, sur 11:46 PM
ActiveCell.Comment.Shape.TextFrame.AutoSize = True
By AL, sur 8:58 AM
Merci AL, cela fonctionne en effet très bien !
By Hervé Thiriez, sur 7:20 PM
On peut sophistiquer un peu plus, en testant si la cellule a déjà un commentaire, et dans ce cas on peut (si on le souhaite) rajouter la formule après le commentaire existant:
If ActiveCell.Comment Is Nothing Then
ActiveCell.AddComment
zcomment = ""
Else
zcomment = ActiveCell.Comment.Text & Chr(10)
Endif
ActiveCell.Comment.Text Text:= zcomment & ActiveCell.Formula
J'ai même entrecoupé ce code de petits MsgBox demandant à l'utilisateur (=moi!) ce qu'il préférait faire: comme ça je peux choisir si je remplace le commentaire existant ou le complète, et si je veux la formule anglaise ou francisée... Mais c'est du luxe!
Encore mille mercis pour votre blog!!!
By Phil, sur 11:35 AM
Enregistrer un commentaire
<< Accueil