Changer une partie du texte d'une cellule sans changer les couleurs / mises en forme

mig92

XLDnaute Nouveau
Bonjour à tous
Je vous écris car là je suis-je suis confronté à un problème dont je ne trouve pas la solution :
Il s’agit pour moi de changer le texte d’une cellule excel sans changer les couleurs / formats des autres textes présents dans cette même cellule.
Par exemple, dans la cellule B5 il y a tout ce texte :

Nom : Jonathan
Profession : créateur génial de macros
lien hypertexte : www.genial.com



donc les 3 lignes sont dans la cellule B5 (avec un retour chariot dans à chaque ligne).

Mon problème est que je dois changer certains mots de cellules et quand j’utilise un simple rechercher / remplacer ou surtout un replace (en vba), j’ai tout le formatage de la cellule qui disparait (les couleurs, le gras) donc la cellule devient soit sans gras, sans couleurs, soit en gras sans couleurs….

Est-ce que quelqu’un saurait donc comment remplacer un texte par un nouveau texte dans une cellule (en VBA) tout en conservant le format du texte qui est avant / après, mais aussi en conservant le format du texte que je remplace ?

Exemple :
Actuellement, j’ai donc dans la cellule B5 ce qui est indiqué dans « avant », et je dois donc remplacer en VBA le mot « créateur » par « inventeur ». Je ne connais pas le format du contenu de toute la cellule mais j’ai besoin qu’il soit conservé tel quel.

Donc si je fais cette manip en VBA avec la fonction « replace » ou avec un simple rechercher / remplacer, cela donne l'ensemble de la cellule est bien changé comme je le souhaite, sauf que tout le formatage disparait, et le texte devient sans couleur et avec le formatage du 1er mot (il était en gras donc tout devient gras).
J'utilise actuellement cette formule pour remplacer le contenu :
Cell.Value = Replace(Cell.Value, ancientexte, nouveautexte)

Merci infiniment de votre aide !!!
 

klin89

XLDnaute Accro
Re : Changer une partie du texte d'une cellule sans changer les couleurs / mises en f

Bonjour mig92,

Peut-être définir les 2 arguments SearchFormat et ReplaceFormat de la méthode Replace comme ceci :
SearchFormat:=True, ReplaceFormat:=True

Klin89
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Changer une partie du texte d'une cellule sans changer les couleurs / mises en f

Bonsoir,

Un petit essai. Voir le fichier joint (VBA)
Nota: le format final de la chaine de remplacement est le format du premier caractère de la chaine remplacée.
La recherche est sensible à la casse.
 

Pièces jointes

  • Partie Cellule v01.xlsm
    22.5 KB · Affichages: 1 494
Dernière édition:

mig92

XLDnaute Nouveau
Re : Changer une partie du texte d'une cellule sans changer les couleurs / mises en f

Alors comment dire !!!
C'est Geniaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal !!!!
Pffff c'est une bénédiction, je te remercie millllllllle fois + 200000000000 !!!!
:-D
Merci à toi et merci à tous ceux qui se sont creusés le ciboulot !!!
Joyeux Noellllll !
:)
 

mig92

XLDnaute Nouveau
Re : Changer une partie du texte d'une cellule sans changer les couleurs / mises en f

Argh, may day...
Je n'arrive pas à la faire fonctionner si une cellule contient + de 255 caractères...quelqu'un a une idée ???
Merciiii
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 926
Membres
101 841
dernier inscrit
ferid87