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 !

Sirberthoult

XLDnaute Occasionnel
bonjour

j'utilise "concaténer" sur plusieurs cellules contenant des textes en couleur...
et je souhaite que dans la cellule où s'ajoute les différents textes, ces derniers conservent leurs couleurs attribuées d'origine...

pouvez vous m'aider...

merci.
 
Re : couleur de texte...

Re Bonjour

tu vas dire que je suis lourd mais je ne comprend pas:
On met les chaines de carctères dans la variable Var et on la colle dans la cellule "Cells(Target.Row + 2, 3)"

desolé je suis nul🙁

sinon j'ai un petit problème d' "actualisation"

j'ai modifié le doc pour pouvoir enregistrer les modifications qui seront faite chaque jour via la macro "enregistrer", mais la chaine concatenisé ne s'actualise pas aprés chaque enregistrement...
Regarde la pièce jointe Diet essai.zip

merci de ton aide
 
Re : couleur de texte...

Génial, même si j'ai pas décelé la modification... mais j'ai pas eu beaucoup de temps encore pour comparer...🙂

j'ai hâte de comprendre mieux ...

et surtout avoir tes explications concernant les cellules cibles avec la variable ...pour compléter le document...😛

je sais plus si je t'ai dis merci pour tout ?🙂
 
Re : couleur de texte...

Bonjour Sirberthoult, le fil, le forum
Sirberthoult, comme je ne vois pas ce qui t'échappe, je vais reprendre du début (désolé si j'enfonce des portes ouvertes).
Cells(ligne, colonne)
Target représente le cellule que l'on va modifier.
Target.Row donne le numéro de la ligne ou se trouve cette cellule.


Dans le code on boucle sur toute les cellules (colonne) de la target.Row (For j = 16 To 29); pour chacune de ces cellules si la cellule de la même colonne en ligne 3 termine par hier (If Right(Cells(3, j), 4) = "hier" Then) ,on vérifie si la cellule est eu format %, on prépare le " % + ",on incrémente la variable Var (Var = Var & DébutCarac & Cells(Target.Row, j).Value & Ajoutcarac)
On donne à la cellule deux lignes en dessous (+2) de la target et colonne 3 (C)la valeur Var moins les derniers caractères qui sont en trop exemple " + ".(Cells(Target.Row + 2, 3).Value = Left(Var, Len(Var) - AjoutNbr))

En espérant avoir été clair, l'exercice n'étant si simple.

Le mieux est de cliquer dans une instruction (par exemple dans Left) et faitre F1 pour lire l'aide concernant cette instruction.😉
Cordialement
 
Re : couleur de texte...

Bonjour,

bon j'ai étudié un peu le code et je vais te dire ce que j'ai compris...

d'après ce que je comprend le code applique une formule que tu as écrit qui concerne les colonnes de 16 à 29 pour chaque lignes de cellules cibles...

et donc je peut toujours cherché un truc du genre: faire ceci [...] en C4 et en C7 et en C10 ... (comme je le faisait pour concaténer en changant le numéro des cellules pour chaque ligne...)

le code doit s'appliquer pour chaque ligne des que toutes les condition sont réunies (présence d'un nom, présence d'un enrichissement de lait, ...)

alors si mon raisonnement est bon, je comprend pas pourquoi quand j'ajoute des noms et des enrichissements, le code ne s'applique pas dans les nouvelles lignes rempli ?🙁

(je précise que j'ai enlevé ma formule précédente pour concaténer)

deuxième solutions : même en m'expliquant longtemps je comprend rien et j'ai plus qu'a bruler mon PC...😱

merci de me rassurer...

P.S.:en ce qui me concerne, tu n'as enfoncé aucune porte...et je crois que tu n'en enfonceras pas beaucoup avec moi...😛
 
Re : couleur de texte...

Bonjour Sirberthoult,
Je ne comprend pas
Code:
je comprend pas pourquoi quand j'ajoute des noms et des enrichissements, le code ne s'applique pas dans les nouvelles lignes rempli
J'ai modifié le code, pour qu'il soit plus présentable.Je l'ai (abondemment) commenté dans l'exemple joint.
Les + restent en noir, il n'y a plus besoin d'avoir les colonnes dans l'ordre.
Regarde si cela te va et dis moi.
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("L4:AB70")) Is Nothing Then Exit Sub
Dim Tableau(0 To 13, 1 To 3), Var$, Ajoutcarac$, W&, j&, z&
W = 0
For j = 16 To 29
    With Cells(Target.Row, j)
        If Trim(.Value) <> "" And UCase(Right(Cells(3, j), 4)) = "HIER" Then
            W = W + 1
            Ajoutcarac = IIf(.NumberFormat = "#"" %""", " % + ", " + ")
            Var = Var & Left(Cells(3, j), Len(Cells(3, j)) - 7) & " " & .Value & Ajoutcarac
            Tableau(W, 1) = Len(Cells(3, j)) - 6 + Len(.Value) + Len(Ajoutcarac)
            Tableau(W, 2) = Tableau(W, 1) + Tableau(W - 1, 2)
            Tableau(W, 3) = .Font.Color
        End If
    End With
Next j
With Cells(Target.Row + 2, 3)
    .Font.ColorIndex = 0
    If Var = "" Then .Value = "": Exit Sub
    .Value = Left(Var, Len(Var) - 3)
    For z = 1 To W
        .Characters(Tableau(z - 1, 2), Tableau(z, 1) - 2).Font.Color = Tableau(z, 3)
    Next z
End With
End Sub
Cordialement
 

Pièces jointes

Dernière édition:
Re : couleur de texte...

Re
Je crois que j'ai compris ton problème d'ajout de ligne...
Remplace :
VB:
If Intersect(Target, Range("L4:AB70")) Is Nothing Then Exit Sub
Par
VB:
If Intersect(Target, Range("A4:A70,L4:AB70")) Is Nothing Then Exit Sub
Cordialement
 
Dernière édition:
Re : couleur de texte...

Bonjour,

je comprend pas pourquoi quand j'ajoute des noms et des enrichissements, le code ne s'applique pas dans les nouvelles lignes rempli ?

cela veut dire que ma liste de noms est evolutive via une macro et que lorsque j'ajoute des enrichissement au lait (Liq, Eopro,...) et enregistre ces derniers ne se concatenise pas comme pour les 5 premier noms.

j'ai copier coller ton nouveau code dans mon projet avec la macro enregistrer active puis j'ai effectuer la modification de code comme tu me la précisé,...

j'ai juste modifier :
If Intersect(Target, Range("A4:A70,L4:AB70")) Is Nothing Then Exit Sub
par:
If Intersect(Target, Range("A4:A70,P4:AB70")) Is Nothing Then Exit Sub
car je crois que l sélection doit commencer par le premier enrichissement (peut être est-ce une erreur de compréhension de ma part et c'était fait exprès...)

je te montre ce que ca donne:
Regarde la pièce jointe Diet essai code2.zip

le soucis c'est que ton code fonctionne sur les deux premier noms (avec les + en noir ) mais pas pour le reste, si j'ajoute des noms et enregistre...

merci pour toute tes explications précédentes dans les codes j'apprends beaucoup mais pas suffisamment pour te corriger...🙄
 
Re : couleur de texte...

Bonjour Sirberthoult, le fil le forum
Désolé de ne répondre que mainrenant mais la journée fut chargée 😎.
...cela veut dire que ma liste de noms est evolutive via une macro et que lorsque j'ajoute des enrichissement au lait (Liq, Eopro,...) et enregistre ces derniers ne se concatenise pas comme pour les 5 premier noms....
Je ne comprend toujours pas le problème 😱.
Si j'ajoute un nom dans les feuilles, le dernier exemple que tu fournis ne pose pas de problème, enfin je pense 😎
Fait au plus simple : mets un fichier qui ne fonctionne pas, avec des explications (là, je mets un nom, là aussis, là ça ne marche pas quand je fais ça...)
...j'ai copier coller ton nouveau code dans mon projet avec la macro enregistrer active puis j'ai effectuer la modification de code comme tu me la précisé,...
Es tu sur que ton code est bon ?
Je dois avouer que je ne nage quelque peu...😛
A te relire.
Cordialement
 
Re : couleur de texte...

Bonjour,
voici mon dossier avec des explications ...Cijoint.fr - Service gratuit de dépôt de fichiers

sinon j'ai étudié le fonctionnement de ton code et je pense avoir décelé le problème...

en effet elle fonctionne toute seul seulement pour le premier nom quand j'enregistre.
pour les autre noms aucune modifications n'aient visible quand j'enregistre...
par contre si je re-valide une formule de recherche après une modification, la modification est prise en compte dans la chaine...
je pense qu'il faut trouver le moyen de forcer ton code à "calculer" toutes les lignes de noms pour chaque "enregistrement avec ma macro...
Qu'en pense tu ?

dans mon dossier j'explique ce qui ne fonctionne pas mais je crois après test que les problèmes devraient se résoudre si on force le calcule...à moins que si cela fonctionne bien chez toi, ce soit un problème d'option de paramètres d'excel...(automatique chez moi dans les options)

je te fais en plus une autre petite demande auquel je n'ait pas pensé avant et qui est importante désolé pour cette erreur sur mon cahier des charges😱
 
Re : couleur de texte...

Bonjour Sirberthoult, le fil, le forum
Une nouvelle mouture qui devrait s'approcher du but.
J'ai modifié la plage de la macro dans la feuille et ajouté une macro qui se déclenche avec ton enregistrement.
Regarde, test et tiens moi au courant.
PS : Vérifies tes formules car en changeant le nom en colonne A cela modifie le lait du bébé en dessous 😱 Est ce normal ?
Cordialement
 

Pièces jointes

- 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
5
Affichages
691
  • Question Question
Réponses
28
Affichages
505
Réponses
4
Affichages
308
Retour