Mise en forme de Commentaires par VBA

Bonjour,

Dans le fichier ci-joint, j’ai une macro qui me permet de trier des membres - appartenant à des groupes - par leur nom.

Afin de pouvoir repérer facilement les membres d’un même groupe ne portant pas les mêmes noms, j’ajoute des commentaires aux personnes concernées dans la colonne G. Ainsi par exemple, Madame Favre Régine a un commentaire qui indique qu’un autre membre de son groupe s’appelle Voudoux Michael. Et idem pour Voudoux.

Mes problèmes sont les suivants :

1) J’aurais aimé que la première ligne du commentaire apparaisse en gras et

2) que le format du commentaire soit adapté au contenu.

Pour ce deuxième point, je voudrais par exemple que le format du commentaire soit diminué ou agrandi dans sa hauteur en fonction du nombre de lignes qu’il contient – actuellement toutes les lignes du groupe 1005 n’y sont pas visibles - et que sa largeur soit adaptée au plus long prénom, tel que celui de Jean-Pierre-François-Raoul Genolet qui y apparait pour l’instant sur deux lignes.

Voici l'extrait de mon code qui traite de ces Commentaires :

    ' On prépare le texte du commentaire
    Texte_Commentaire = "Groupe " & Range("G" & Première_Ligne)
    'Nom_1 & " " & Prénom_1 & Chr(10) & Nom_2 & " " & Prénom_2
    For i = Première_Ligne To Dernière_Ligne
        Texte_Commentaire = Texte_Commentaire & Chr(10) & Range("C" & i) & " " & Range("D" & i)
    Next i

    ' On attribue le commentaire à qui de droit
    For i = Première_Ligne To Dernière_Ligne
        Range("G" & i).AddComment
        Range("G" & i).Comment.Text Text:=Texte_Commentaire
    Next i

Savez-vous m’aider ?

Cordialement

38demo-01.xlsm (30.59 Ko)

bonjour Yvouille et le forum

perso je sais mettre tout le commentaire en gras exemple :

Range("G4").Comment.Shape.TextFrame.Characters.Font.Bold = True ' ecriture gras

mais pas une seule ligne....

si jamais cela peut t'aider dans tes recherches...

fred


Re bonjour

après une petite recherche sur microsoft

https://answers.microsoft.com/fr-fr/msoffice/forum/msoffice_excel-mso_other/mise-en-forme-commentaire-cellule/3070e517-937c-e011-9b4b-68b599b31bf5

voici ton code modifié :

If Drapeau_Groupe_à_traiter = True Then

    ' On prépare le texte du commentaire
    Texte_Commentaire = "Groupe " & Range("G" & Première_Ligne)
nbcar = Len(Texte_Commentaire) + 1
    'Nom_1 & " " & Prénom_1 & Chr(10) & Nom_2 & " " & Prénom_2
    For i = Première_Ligne To Dernière_Ligne
        Texte_Commentaire = Texte_Commentaire & Chr(10) & Range("C" & i) & " " & Range("D" & i)
    Next i

    ' On attribue le commentaire à qui de droit
    For i = Première_Ligne To Dernière_Ligne
        Range("G" & i).AddComment
        Range("G" & i).Comment.Text Text:=Texte_Commentaire
Range("G" & i).Comment.Shape.TextFrame.Characters(1, nbcar).Font.Bold = True
    Next i

End If

et n'oublie pas declarer nbcar :

Dim i As Integer, j As Integer, Valeurs_7001 As Integer, Valeurs_8001 As Integer, Valeurs_9001 As Integer, DerLig As Integer, nbcar As Byte

fred

Bonjour,

et pour compléter :

ActiveCell.Comment.Shape.TextFrame.AutoSize = True

eric

Salut Fred, Salut Eric,

Merci beaucoup pour votre aide.

@ Fred

Comme en fait ma première ligne a toujours la même longueur, j’ai simplement rajouté la ligne ci-dessous, selon ton idée :

Range("G" & i).Comment.Shape.TextFrame.Characters(1, 11).Font.Bold = True

@ Eric

Génialissime

Amicalement.

62demo-02.xlsm (32.29 Ko)
Rechercher des sujets similaires à "mise forme commentaires vba"