[Résolu] Conserver Mise en Forme d'origine après exécution macro

WaïRa

XLDnaute Nouveau
Bonjour à tous,
Suite à une excellente aide de la part des membres (un grand merci encore à Staple1600),
J'exécute une macro me permettant de saisir du texte dans une inputbox puis de le placer, adjoint d'une signature+date à la suite de précédentes saisies dans une zone de texte définie (voir code ci-dessous).

Mon problème est qu'à chaque exé de la macro, celle-ci enlève la mise en forme qui était présente dans la zone texte concernée :( Quelqu'un pourrait m'aider à solutionner ce contre-temps s.v.p?

VB:
Sub WaiRa()
'
' WaiRa Macro
' signe WaiRa+Date
'
' Touche de raccourci du clavier: Ctrl+l
'
Dim Comm$, Signature$, Commentaires, X As Long
Comm = ActiveSheet.Shapes("Suivi").TextFrame2.TextRange
Signature = ("WaiRa") & Format(Date, "\_dd/mm")
Commentaires = Commentaires & Comm & vbCrLf & ("-->  ") & InputBox("Saisir commentaire suivi:")
X = Len(Commentaires) * 1
With ActiveSheet.Shapes("Suivi")
    .TextFrame2.TextRange = Commentaires & vbCrLf & Signature
    .TextFrame.Characters.Font.ColorIndex = 3
    .TextFrame.Characters.Font.Size = 14
   With .TextFrame.Characters(Start:=1, Length:=X).Font
    .Name = "Calibri Light": .Bold = True
    .ColorIndex = 3
    End With
    With .TextFrame.Characters(Start:=X + 1, Length:=Len(Signature) + 1).Font
    .Name = "Bradley Hand ITC": .Bold = True
    .ColorIndex = 23
    End With
End With
End Sub

Je précise que je débute tout juste et que je suis loin de comprendre encore l'ampleur de ce qu'est le code VBA. J'ai bien tenter de contourner le problème en essayant un rechercher/remplacer, mais sans succès, et il doit y avoir plus direct j'imagine!
Bref, un grand merci d'avance à qui voudra bien me porter secours :D
 

Pièces jointes

  • Excel-Downloads.xlsm
    141.5 KB · Affichages: 65

Staple1600

XLDnaute Barbatruc
Bonsoir à tous

Comme quoi ça paye la persévérance, jeune padawan ;)
Ci-dessous ta macro modifiée en utilisant sh
VB:
Sub WaiRa()
' test0110 Macro
' test Strape1600 -> connait pas ;-)
' test Staple1600 -> C'est bibi ;-)

Dim sh As Shape, Signature$, X As Long
Signature = "WaiRa" & Format(Date, "\_dd/mm ")
Set sh = ActiveSheet.Shapes("Suivi")
sh.TextFrame.Characters.Font.Bold = True
Suivi = "--> " & InputBox("Commentaires, svp!", "Saisie du commentaire", "Saisir ICI votre texte.") & Chr(13) & Signature & Chr(13)
X = sh.TextFrame2.TextRange.Characters.Count + 1
sh.TextFrame2.TextRange.InsertAfter Suivi
With sh.TextFrame.Characters(X + Len(Split(Suivi, Chr(13))(0)), Len(Signature)).Font
   .Name = "Bradley Hand ITC": .ColorIndex = 33
End With
With sh.TextFrame.Characters(X, Len(Split(Suivi, Chr(13))(0))).Font
    .Name = "Calibri Light": .ColorIndex = 3
End With
End Sub
Est-ce que le résultat est pareil que ta macro ?
 

Statistiques des forums

Discussions
312 429
Messages
2 088 351
Membres
103 824
dernier inscrit
frederic.marien@proximus.