Code pour modifier la couleur de fond d'un commentaire

marcelio

XLDnaute Occasionnel
Bonjour à tous,

Avec un double click sur ma feuille j'ouvre un InputBox, que je remplis et
qui me permet à la fin l'insertion d'un commentaire
Tout fonctionne correctement.
Ce que je voudrais et j'ai chercher mais je n'ai pas trouver
c'est d'ajouter un code pour pouvoir modifier la couleur de fond du commentaire
Voici mon code
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Count = 1 Then
With Target
If .NoteText = "" Then
reponse = InputBox("Indiquez les kilomètres parcourus")
If reponse <> "" Then
.AddComment reponse & " kilomètres parcourus"
With .Comment.Shape.OLEFormat.Object.Font
.Name = "Comic Sans MS"
.Size = 8
.FontStyle = "gras"
.ColorIndex = 10
End With
.Comment.Visible = True
.Comment.Shape.Select
Selection.AutoSize = True
.Comment.Visible = False
End If
Else
.Comment.Delete
End If
End With
End If
Cancel = True
End Sub

En vous remerciant d'avance.
 

Pièces jointes

  • Fond couleur commentaire.zip
    7.2 KB · Affichages: 28

marcelio

XLDnaute Occasionnel
Re : Code pour modifier la couleur de fond d'un commentaire

Bonsoir job75 et le forum,

J'ai bien vu cette discussion et même testé les codes, mais j'ai une erreur d'exécution '438'
Propriété ou méthode non gérée par cet objet.

Merci de ton aide.
 

job75

XLDnaute Barbatruc
Re : Code pour modifier la couleur de fond d'un commentaire

Bonjour marcelio,

Pour la couleur de fond du commentaire en A1 :

Code:
'coul = 38 'rose saumon
coul = 43 'citron vert
[A1].Comment.Shape.OLEFormat.Object.Interior.ColorIndex = coul
A+
 

marcelio

XLDnaute Occasionnel
Re : Code pour modifier la couleur de fond d'un commentaire

Bonjour job75 et le forum,

Merci pour le code, c'est excellent.
Par contre je travail de la cellule N13 à N22,
alors j'ai essayé [N13:N22] mais cela ne fonctionne pas,
Quel est la solution ?

A+
 

job75

XLDnaute Barbatruc
Re : Code pour modifier la couleur de fond d'un commentaire

Re,

Je crois comprendre que vous voulez créer des commentaires uniquement sur la plage N13:N22.

Alors voici la macro du post #1 adaptée (avec quelques modif) :

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, [N13:N22]) Is Nothing Then
  Cancel = True
  With Target
    If .NoteText = "" Then
      reponse = InputBox("Indiquez les kilomètres parcourus")
      If reponse <> "" Then
        .AddComment reponse & " kilomètres parcourus"
        With .Comment.Shape.OLEFormat.Object
          .AutoSize = True
          .Interior.ColorIndex = 38 'rose saumon
          With .Font
            .Name = "Comic Sans MS"
            .Size = 8
            .Bold = True
            .ColorIndex = 10
          End With
        End With
      End If
    Else
      .Comment.Delete
    End If
  End With
End If
End Sub
L'objet .Comment.Shape.OLEFormat.Object est utilisé au mieux.

A+
 

job75

XLDnaute Barbatruc
Re : Code pour modifier la couleur de fond d'un commentaire

Bonjour marcelio, le forum,

Une fois le commentaire créé, si l'on efface le texte et qu'on refait un double-clic, la macro beugue.

Pour l'éviter modifier le 2ème test If :

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, [N13:N22]) Is Nothing Then
  Dim reponse As String
  Cancel = True
  With Target
    If .Comment Is Nothing Then
      reponse = InputBox("Indiquez les kilomètres parcourus")
      If reponse <> "" Then
        .AddComment reponse & " kilomètres parcourus"
        With .Comment.Shape.OLEFormat.Object
          .AutoSize = True
          .Interior.ColorIndex = 38 'rose saumon
          With .Font
            .Name = "Comic Sans MS"
            .Size = 8
            .Bold = True
            .ColorIndex = 10
          End With
        End With
      End If
    Else
      .Comment.Delete
    End If
  End With
End If
End Sub
A+
 

Discussions similaires

Statistiques des forums

Discussions
312 392
Messages
2 087 988
Membres
103 690
dernier inscrit
LeDuc