[VBA / Excel]Ajouter texte dans cellule sans changer sa couleur
Résolu/Fermé
A voir également:
- Vba ecrire du texte dans une cellule
- Excel cellule couleur si condition texte - Guide
- Aller à la ligne dans une cellule excel - Guide
- Ecrire en gras sur whatsapp - Guide
- Excel compter cellule couleur sans vba - Guide
- Ecrire en miroir - Guide
2 réponses
ccm81
Messages postés
10900
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
2 novembre 2024
2 425
31 mars 2015 à 17:30
31 mars 2015 à 17:30
OK, alors, il faut stocker les couleurs de chaque caractère avant la maj
Cdlmnt
Const coulss = 3 Public Sub essai() Dim s As String, ls As Long, ss As String, lss As String, cel As Range Dim tcoul(), k As Long Set cel = Selection s = cel.Value ls = Len(s) ss = InputBox("donner un texte") lss = Len(ss) ReDim tcoul(1 To ls + lss) For k = 1 To ls tcoul(k) = cel.Characters(k, 1).Font.ColorIndex Next k For k = ls + 1 To ls + lss tcoul(k) = coulss Next k cel.Value = s & ss For k = 1 To ls + lss cel.Characters(k, 1).Font.ColorIndex = tcoul(k) Next k End Sub
Cdlmnt
ccm81
Messages postés
10900
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
2 novembre 2024
2 425
31 mars 2015 à 16:26
31 mars 2015 à 16:26
Bonjour,
il te faut peut être récupérer la couleur de la première partie et l'appliquer aussi au résultat
exemple
Cdlmnt
il te faut peut être récupérer la couleur de la première partie et l'appliquer aussi au résultat
exemple
Const coulss = 3 Public Sub essai() Dim s As String, ls As Long, couls As Long, ss As String, lss As String, cel As Range Set cel = Selection s = cel.Value couls = cel.Font.ColorIndex ls = Len(s) ss = InputBox("donner un texte") lss = Len(ss) cel.Value = s & ss cel.Characters(1, ls).Font.ColorIndex = couls cel.Characters(ls + 1, lss).Font.ColorIndex = coulss End Sub
Cdlmnt
Salut ccm81,
Merci, cela marche dans certains cas.
Le problème est que le rajout de texte d'une certaine couleur se fait dans une boucle en fonction de conditions et que l'objectif est que seules certaines parties soit d'une certaine couleurs : Par exemple si on a 4 mots à rentrer on veut peut être (en fonction de boucles if) que 2 soient en rouge, 2 en noirs et peut être en alterné (j'aurais du le préciser dans ma question)
Au moment où on rajouterait donc du texte on pourrait se retrouver dans le cas où la cellule comporte déjà plusieurs mots de différentes couleurs.
Je pensais qu'il y aurait peut être un moyen de désactiver le fait que la cellule prenne automatiquement la couleur des caractères rajoutés.
Cordialement,
Merci, cela marche dans certains cas.
Le problème est que le rajout de texte d'une certaine couleur se fait dans une boucle en fonction de conditions et que l'objectif est que seules certaines parties soit d'une certaine couleurs : Par exemple si on a 4 mots à rentrer on veut peut être (en fonction de boucles if) que 2 soient en rouge, 2 en noirs et peut être en alterné (j'aurais du le préciser dans ma question)
Au moment où on rajouterait donc du texte on pourrait se retrouver dans le cas où la cellule comporte déjà plusieurs mots de différentes couleurs.
Je pensais qu'il y aurait peut être un moyen de désactiver le fait que la cellule prenne automatiquement la couleur des caractères rajoutés.
Cordialement,
2 avril 2015 à 15:52
Désolé pour la réponse tardive, ça m'a pris pas mal de temps à proprement l'intégrer dans ma macro de base mais la méthode fonctionne très bien et ne rallonge pas trop le temps de fonctionnement.
Merci beaucoup !