klin89
XLDnaute Accro
Bonsoir le forum,
A l'ouverture du fichier saisir klin89 dans l'inputbox ----> Workbook_Open()-----> Rien à craindre (Code de Job75 décliné)
Dans le module de la feuille "2012", j'ai placé cette macro qui colorie successivement (3 couleurs) le montant déjà saisi, puis ajoute un commentaire.
Dans l'ajout du commentaire, à chaque début de ligne figure le montant inséré de la target, or j'aimerais que ce montant conserve la couleur attribué lors du double clic.
Actuellement, seule la couleur au dernier double clic (dernier ajout dans le commentaire) est conservée.
Comment puis-je conserver les couleurs initialement appliquées.
Worksheet_Change est construit sur le même modèle.
Je ne vois pas comment procéder, j'ai pensé à splitter le commentaire, chercher les positions et les couleurs du premier caractère de chaque ligne de commentaire, les placer dans 2 variables tableau puis après je me perds
Pouvez-vous m'aider ?
Klin89
A l'ouverture du fichier saisir klin89 dans l'inputbox ----> Workbook_Open()-----> Rien à craindre (Code de Job75 décliné)
Dans le module de la feuille "2012", j'ai placé cette macro qui colorie successivement (3 couleurs) le montant déjà saisi, puis ajoute un commentaire.
Dans l'ajout du commentaire, à chaque début de ligne figure le montant inséré de la target, or j'aimerais que ce montant conserve la couleur attribué lors du double clic.
Actuellement, seule la couleur au dernier double clic (dernier ajout dans le commentaire) est conservée.
Comment puis-je conserver les couleurs initialement appliquées.
VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'Change la couleur de la cellule au double-clic
If Intersect(Target, Range("B3:M" & Range("A65536").End(xlUp).Row - 3)) Is Nothing Then Exit Sub
If IsEmpty(Target) Then Exit Sub
Application.EnableEvents = False
Cancel = True
With Target.Font
Select Case .ColorIndex
Case Is = xlAutomatic
.ColorIndex = 5 'Bleu
Case 5
.ColorIndex = 3 'rouge
Case Else
.ColorIndex = xlAutomatic 'noir
End Select
.Bold = IIf(.ColorIndex = xlAutomatic, 0, 1)
End With
If Target.NoteText = "" Then Target.AddComment: Pos = 1 ' Création commentaire
If Pos <> 1 Then
Pos_dernier_vblf_commentaire = InStrRev(Target.Comment.Text, vbLf)
Pos = InStrRev(Target.Comment.Text, vbLf, Pos_dernier_vblf_commentaire) + 1
End If
With Target.Comment
.Text Text:=.Text & Format(Target.Value, "# ##0.00 €") & " modifié par " & NomUtilisateur & " le : " & Date & " à " & Time & vbLf
.Visible = True
.Shape.DrawingObject.AutoSize = True
.Visible = False
End With
lg = Len(Target.Comment.Text)
lg1 = Len(Target.Text) + 3
coul = Target.Font.ColorIndex
With Target.Comment.Shape.TextFrame
.Characters(Start:=1, Length:=lg).Font.Name = "Verdana"
.Characters(Start:=1, Length:=lg).Font.Size = 12
.Characters(Start:=1, Length:=lg).Font.ColorIndex = 1
.Characters(Start:=1, Length:=lg).Font.Bold = False
.Characters(Start:=1, Length:=lg).Font.Italic = False
.Characters(Start:=Pos, Length:=lg1).Font.Bold = True
.Characters(Start:=Pos, Length:=lg1).Font.ColorIndex = coul
End With
Application.EnableEvents = True
End Sub
Worksheet_Change est construit sur le même modèle.
Je ne vois pas comment procéder, j'ai pensé à splitter le commentaire, chercher les positions et les couleurs du premier caractère de chaque ligne de commentaire, les placer dans 2 variables tableau puis après je me perds
Pouvez-vous m'aider ?
Klin89
Pièces jointes
Dernière édition: