[ Résolu ]Texte de plusieurs couleurs dans une liste déroulante

al1.2loin

XLDnaute Occasionnel
Bjr, j'aurais voulu savoir si il était possible de mettre différentes couleurs dans le champ du texte d'une liste déroulante, exemple dans ma liste déroulante j'ai Renault Clio HDI , je voudrais Renault en bleu et HDI en rouge, comment cela est il possible de le faire. ci joint fichier.
 

Pièces jointes

  • Texte_Couleurs.xlsm
    48.9 KB · Affichages: 77
Dernière édition:

al1.2loin

XLDnaute Occasionnel
Re : Texte de plusieurs couleurs dans une liste déroulante

Re, Bjr à David84 et JM, l'exemple que j'avais donner pour faire simple est bien en D4, mais sur mon fichier original qui faire 91 MO,et que je n'ai pu envoyer car trop volumineux, la cellule est bien en U16.
Et encore une fois merci pour vous êtres penché sur mon problème.
Voici la visualisation du résultat final .
Accueil_Reservations.jpg
 

Pièces jointes

  • Accueil_Reservations.jpg
    Accueil_Reservations.jpg
    72.9 KB · Affichages: 60
  • Accueil_Reservations.jpg
    Accueil_Reservations.jpg
    72.9 KB · Affichages: 58

david84

XLDnaute Barbatruc
Re : Texte de plusieurs couleurs dans une liste déroulante

Une erreur dans le code précédent : remplacer
Code:
    .Characters(Car_fin, 7).Font.FontStyle = "Bold"
par
Code:
    .Characters(Car_fin, Len(Target.Value)).Font.FontStyle = "Bold"
ce qui donne
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$4" Then
  Dim Car_deb As Byte, Car_fin As Byte
  With Target
    .Font.ColorIndex = 1
    .Font.Bold = False
    Car_deb = InStr(1, .Value, "_") - 1
    Car_fin = InStrRev(.Value, "!")
    .Characters(1, Car_deb).Font.FontStyle = "Bold"
    .Characters(1, Car_deb).Font.ColorIndex = 5
    .Characters(Car_fin, Len(Target.Value)).Font.FontStyle = "Bold"
    .Characters(Car_fin, Len(Target.Value)).Font.ColorIndex = 3
    .Characters(Car_deb + 1, Car_fin - Car_deb - 1).Font.ColorIndex = 2
  End With
End If
End Sub
Pour borner ton menu déroulant remplacer dans le gestionnaire de noms
Code:
=Listes_Plans!$A:$A
par
Code:
=DECALER(Listes_Plans!$A$1;;;NBVAL(Listes_Plans!$A:$A))

Ma ligne de code pour le blanc réservera-t-elle des surprises?
Non je ne pense pas à 1ère vue. Par contre a priori je mettrait +1 et non +2 sinon l'underscore reste en noir.
Je vois que tu as mis tout en gras donc si c'est ce que le demandeur veut autant suprimer
Code:
.Font.Bold = False
et n'utiliser qu'une commande pour mettre l'ensemble de la chaîne en gras d'un coup
Code:
With Target
  .Font.ColorIndex = 1
  Car_deb = InStr(1, .Value, "_") - 1
  Car_fin = InStrRev(.Value, "!")
  .Characters(1, 9 ^ 9).Font.FontStyle = "Bold"
  .Characters(1, Car_deb).Font.ColorIndex = 5
  .Characters(Car_deb + 1, Car_fin).Font.ColorIndex = 2
  .Characters(Car_fin, 9 ^ 9).Font.ColorIndex = 3
End With
A+
 

al1.2loin

XLDnaute Occasionnel
Re : Texte de plusieurs couleurs dans une liste déroulante

Bjr, encore un grand merci à vous tous de m' avoir aidé, ce n'est pas que je ne veux pas mettre mes mains dans le cambouis, mais mêmes les réponses que j’obtiens sur le forum, je n'en comprend pas souvent la signification, tous cela pour moi est trop complexe, il faudrait que je prenne des cours d'excel, mais je n'en n'ai pas le temps.
Tous ça pour vous dire le résultat de vos efforts en image. Accueil_Reservations.jpg
 

Pièces jointes

  • Accueil_Reservations.jpg
    Accueil_Reservations.jpg
    72.9 KB · Affichages: 109
  • Accueil_Reservations.jpg
    Accueil_Reservations.jpg
    72.9 KB · Affichages: 106

david84

XLDnaute Barbatruc
Re : Texte de plusieurs couleurs dans une liste déroulante

Bjr, encore un grand merci à vous tous de m' avoir aidé, ce n'est pas que je ne veux pas mettre mes mains dans le cambouis, mais mêmes les réponses que j’obtiens sur le forum, je n'en comprend pas souvent la signification, tous cela pour moi est trop complexe, il faudrait que je prenne des cours d'excel, mais je n'en n'ai pas le temps.
Tous ça pour vous dire le résultat de vos efforts en image. Regarde la pièce jointe 321235
L'intérêt d'un forum est justement de pouvoir poser des questions quand tu ne comprends pas des parties de code.
Sinon je vois sur la photo que le 1er "_" de la chaîne de caractères n'est pas coloré. Est-ce normal ? Quel code as-tu utilisé finalement ? Toute la chaîne doit-t-elle être en gras ou seulement les parties en bleu et rouge ?
A+
 

al1.2loin

XLDnaute Occasionnel
Re : Texte de plusieurs couleurs dans une liste déroulante

Bjr, oui le l'ai remarqué car j'avais mis le code que Staple1600 m'avais mis et je n'avais pas vu le tient.
.Characters(Car_deb + 2, Car_fin).Font.FontStyle = "Bold"
.Characters(Car_deb + 2, Car_fin).Font.ColorIndex = 2
et rectifier par toi.
.Characters(Car_deb + 1, Car_fin).Font.FontStyle = "Bold"
.Characters(Car_deb + 1, Car_fin).Font.ColorIndex = 2
et cela donne 3ANTA(bleu)_40C_21W_147M(blanc)!AF_962__(rouge)
A+
 

david84

XLDnaute Barbatruc
Re : [ Résolu ]Texte de plusieurs couleurs dans une liste déroulante

Re
donc pas besoin de préciser la mise en gras pour chaque portion, autant tout mettre en gras dès le départ (et encore uniquement par sécurité si quelqu'un enlevait le gras de la cellule via la feuille de calcul.
A tester de ton côté :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$4" Then
  Dim Car_deb As Byte, Car_fin As Byte
  With Target
    .Font.ColorIndex = 1
    Car_deb = InStr(1, .Value, "_") - 1
    Car_fin = InStrRev(.Value, "!")
    .Characters(1, Len(Target.Value)).Font.FontStyle = "Bold" 'juste par sécurité
    .Characters(1, Car_deb).Font.ColorIndex = 5
    .Characters(Car_fin, Len(Target.Value)).Font.ColorIndex = 3
    .Characters(Car_deb + 1, Car_fin - Car_deb - 1).Font.ColorIndex = 2
  End With
End If
End Sub
D'autre part as-tu testé ce que je t'avais suggéré concernant ton menu déroulant ?
Si oui qu'observes-tu comme changement ?
A+
 

al1.2loin

XLDnaute Occasionnel
Re : [ Résolu ]Texte de plusieurs couleurs dans une liste déroulante

Bjr, oui le changement est que la chaine de caractère qui est en blanc n'est pas en gras, mais c'est bon j'ai pris ton code du message #23, et toute la chaine de caractère est en gras.
A+ et merci encore.
 

david84

XLDnaute Barbatruc
Re : [ Résolu ]Texte de plusieurs couleurs dans une liste déroulante

Bjr, oui le changement est que la chaine de caractère qui est en blanc n'est pas en gras, mais c'est bon j'ai pris ton code du message #23, et toute la chaine de caractère est en gras.
A+ et merci encore.

Décidément on a du mal à se comprendre : je te parle de ton menu déroulant.
Je t'avais conseillé de remplacer dans le gestionnaire de noms
Code:
=Listes_Plans!$A:$A
par
Code:
=DECALER(Listes_Plans!$A$1;;;NBVAL(Listes_Plans!$A:$A))
afin que lorsque tu ouvres ce menu déroulant tu n'aies plus les lignes vides à la fin.
A+
 

Discussions similaires

Statistiques des forums

Discussions
312 339
Messages
2 087 410
Membres
103 541
dernier inscrit
Sebast'o