CONCATENATION sur un USF avec couleur et taille de police

Bonjour le forum,

Depuis un bon bout de temps, je cherche comment

Insérer plusieurs informations dans une cellule contenant plusieurs lignes (pouvoir changer, le fond de couleur, la couleur de certaine ligne et la taille de la dernière ligne)

J’ai presque trouvé, enfin !!!

C’est-à-dire : j’ai trouvé comment aller à la ligne (mais pas réussi à adapter la ligne de commande à mon projet)

Dim LeTexte As String
LeTexte = TextBox22
LeTexte = Application.WorksheetFunction.Substitute(LeTexte, vbCrLf, Chr(10))
Sheets("planning").Range("I3") = LeTexte 

En plus de ce Pb je cherche à insérer de la couleur et un fond

Tout ça par l’intermédiaire d'un CheckBox

Comme je l’ai dit, cela fait un bon bout de temps que je cherche (forum et moteur de recherche)

J’ai bien trouvé des sujets, mais pas sur la couleur concernant une ligne dans une cellule

Il y a-t-il une personne pour me guider ?

Je m’attaque à du lourd et je suis un peu dépassé,

Merci pour votre aide.

Salut,

En me basant sur l’exemple ci-derrière https://www.excel-pratique.com/fr/astuces_vba/mise_en_forme_caracteres.php, j’ai réussi à créer un UserForm qui va dans le sens que tu désires.

Ça pourrait t’aider à avancer, même que je n’ai pas été au bout des choses.

Pour essayer mon fichier, tu ouvres un UserForm par le bouton mis en place, tu remplis les 4 TextBox et tu regardes le résultat.

Si tu neutralises la ligne Cells(2, 1).Characters(Longueur_TB1 + Longueur_TB2 + Longueur_TB3 + 5, Longueur_TB1 + Longueur_TB2 + Longueur_TB3 + Longueur_TB4).Font.Size = 22, les lignes de la cellule A2 sont bien alignées les unes au-dessous des autres. Par contre, si tu laisses cette ligne active, les lignes sont bizarrement espacées.

A te relire.

21classeur1.xlsm (19.91 Ko)

Bonsoir Yvouille,

Je te remercie pour l’exemple

Je vais tenter de l’adapter à mon fichier

Merci.

Re,

Il semble qu’en utilisant l’instruction Chr(10) à la place de VbNewLine, le problème de l’espacement bizarre disparait.

Dans la macro ci-jointe, le rajout de caractères pris en compte (par mes +2, +3, +4) semble plus logique que dans ma précédente macro.

Private Sub CommandButton1_Click()
Dim Longueur_TB1 As Integer, Longueur_TB2 As Integer, Longueur_TB3 As Integer, Longueur_TB4 As Integer

Longueur_TB1 = Len(TextBox1)
Longueur_TB2 = Len(TextBox2)
Longueur_TB3 = Len(TextBox3)
Longueur_TB4 = Len(TextBox4)

Range("A2") = TextBox1 & Chr(10) & TextBox2 & Chr(10) & TextBox3 & Chr(10) & TextBox4

Cells(2, 1).Characters(1, Longueur_TB1).Font.ColorIndex = 5
Cells(2, 1).Characters(Longueur_TB1 + 2, Longueur_TB1 + Longueur_TB2).Font.ColorIndex = 7
Cells(2, 1).Characters(Longueur_TB1 + Longueur_TB2 + 3, Longueur_TB1 + Longueur_TB2 + Longueur_TB3).Font.ColorIndex = 8
Cells(2, 1).Characters(Longueur_TB1 + Longueur_TB2 + Longueur_TB3 + 4, Longueur_TB1 + Longueur_TB2 + Longueur_TB3 + Longueur_TB4).Font.ColorIndex = 9
Cells(2, 1).Characters(Longueur_TB1 + Longueur_TB2 + Longueur_TB3 + 4, Longueur_TB1 + Longueur_TB2 + Longueur_TB3 + Longueur_TB4).Font.Size = 22

Unload Me

End Sub

Amicalement.

17classeur1-v2.xlsm (22.59 Ko)

Bonsoir Yvouille ,

Merci pour ta modification & ton implication

Je ne comprends pas

J’ai adapté ton code

Mais en changeant la partie

Range("A2") = TextBox1 & Chr(10) & TextBox2 & Chr(10) & TextBox3 & Chr(10) & TextBox4

Par

Range("I & ligne") = commentaire1 & Chr(10) & commentaire2 & Chr(10) & commentaire3 & Chr(10) & commentaire4

J’ai un message d’erreur

Aurais-tu une idée ?

Enfin la nuit porte conseil

Bonjour

Comme j'ai travaillé (lentement) sur ce fichier, je livre les résultats des mes investigations

Je suis parti complétement d'une autre manière

En choisissant dans la ListBox on récupère les infos de la cellule correspondante et en appuyant sur "Valider/Modifier" la recopie se fera dans la cellule en colonne J (juste pour les tests)

Comme je ne sais pas ce que tu voulais exactement j'ai fait à mon idée

A tester (je ne pense pas aller plus loin)

Salut Realiste, Salut Banzai,

Dans l'instruction

Range("I & ligne") = commentaire1 & Chr(10) & commentaire2 & Chr(10) & commentaire3 & Chr(10) & commentaire4

tes guillemets sont mal placés. Il faudrait écrire

Range("I" & ligne) = commentaire1 & Chr(10) & commentaire2 & Chr(10) & commentaire3 & Chr(10) & commentaire4 

Si ce n'est toujours pas cela, il faudrait envoyer le fichier complet dans lequel tu as tenté ta nouvelle macro.

Cordialement.

Bonjour Banzai64,

Bienvenu sur le sujet

Merci pour ton approche je vais tester et voir si je peux l’adapter

Tu es ici chez toi donc tu reviens quand tu veux

Bonjour Yvouille,

Merci pour ta réponse je vais la tester

Désolé pour ma réponse tardive, mais je ne pouvais pas avant.

Bonsoir,

Je viens de finir les quelques essais.

J’ai encore des modifications à faire, mais apriori cela fonctionne avec la méthode de Banzai64, merci Banzai64

Yvouille effectivement il y avait un souci avec les guillemets, mais même avec, ça ne fonctionne pas (je pense avoir compris pourquoi).

Je te remercie pour ton aide et tes indications, elles m’ont bien fait progresser dans le monde fou d’Excel.

Rechercher des sujets similaires à "concatenation usf couleur taille police"