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

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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 ?
 
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 😉
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
1
Affichages
1 K
Compte Supprimé 979
C
A
Réponses
1
Affichages
2 K
Z
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…