Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

[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
 

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 ?
 

WaïRa

XLDnaute Nouveau
Ouep, ne jamais lâcher l'affaire
Oui, ca marche tout pareil, avec un plus du côté du chr(13) placé en fin plutôt qu'au début : ca évite de bouffer une ligne pour rien lors de la première saisie!
Merci encore chef
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…