XL 2016 Mettre en gras une partie du commentaire lié à une cellule

pilote301152

XLDnaute Occasionnel
Bonjour,

J'ai créé un bouton pour afficher/masquer une ligne.
A cette occasion la macro doit préalablement actualiser le commentaire d'une cellule (A4 dans mon fichier) avec mise en gras partielle du texte.
Malheureusement la méthode TEXTFRAME.characters(début,nb car).font.bold=true utilisée avec l'objet Shape ne fonctionne pas !
J'obtiens toujours l'erreur "la méthode 'Textframe' de l'objet 'Shape' a échoué.

Je joins un extrait du fichier concerné et vous remercie de votre aide.

Bien cordialement
 

Pièces jointes

  • Gestion Eau.xlsm
    24.9 KB · Affichages: 7

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Pilote,
Malheureusement la méthode TEXTFRAME.characters(début,nb car).font.bold=true utilisée avec l'objet Shape ne fonctionne pas !
Pour moi cette fonction marche correctement.
Un essai en PJ où on précise le caractère de début et le nombre de caractères à mettre en gras dans le commentaire de A4, avec :
VB:
Sub Essai()
    Range("A4").Comment.Text Text:="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    Range("A4").Comment.Shape.TextFrame.Characters(1, 26).Font.Bold = False
    Range("A4").Comment.Shape.TextFrame.Characters([D4], [D5]).Font.Bold = True
End Sub
 

Pièces jointes

  • Gestion Eau.xlsm
    26.6 KB · Affichages: 6

sylvanu

XLDnaute Barbatruc
Supporter XLD
Expliquez où ça plante !
Pour moi la ligne 28 que vous donnez en erreur marche. Regardez ce visuel.
où je modifie le nombre de caractères à mettre en gras.

20210828_160103.gif
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
En désespoir de cause, si aucune solution n'apparait, on peut faire la mise en gras uniquement si on est sous Windows avec :
VB:
        If Application.OperatingSystem Like "*Windows*" = True Then
            .TextFrame.Characters(1, 29).Font.Bold = True
        End If
Sous MAC pas de mise en gras, mais pas d'erreur.
 

pilote301152

XLDnaute Occasionnel
re ,

effectivement cela évite le plantage en cas d'utilisation sous Mac
Mais j'ai retenu une autre solution soit mise en gras de tout le commentaire (y compris sous MAC)
Pour cela je sélectionne manuellement en Gras un ancien commentaire et mon code est simplifié comme suit:
suppression de:
'With Range("A4")
'.ClearComments
'Set commentaire = .AddComment

'End With
ajout de :
Range("A4").Comment.Text Text:= _
"L'investissement de " & Chr(10) & "1 400 € " & Chr(10) & "(pose 2 Compteurs + Regard en Oct 2020)" & Chr(10) & "est amorti à " & Round((cumulGains + 1400) / 1400 * 100, 0) & " %"


j'obtiens toujours le commentaire en Gras à chaque modification du texte

Est-ce bien orthodoxe de ne pas effacer les commentaires avant modification ??????
En tout cas cela fonctionne

Merci
 

Statistiques des forums

Discussions
314 611
Messages
2 111 144
Membres
111 051
dernier inscrit
MANUREVALAND