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.
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.
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.