Création dynamique d'une liste déroulante dans une cellule, mais en conservant l
MrZurg12
Messages postés15Date d'inscriptionmardi 29 mai 2012StatutMembreDernière intervention20 juillet 2012
-
17 juil. 2012 à 10:48
MrZurg12
Messages postés15Date d'inscriptionmardi 29 mai 2012StatutMembreDernière intervention20 juillet 2012
-
19 juil. 2012 à 14:14
Bien le bonjour,
Je viens vers vous en cette délicieuse matinée car je ne trouve pas de solution à mon problème. Voila ce que je fais.
Je crée dynamiquement des lignes dans lesquelles je rentre des infos. Et je veux qu'une de ces cellules soit une liste déroulante.
Alors j'ai utilisé l'outil d'enregistrement de macro qui m'a donné le code suivant:
Alors ça marche sans problème, lorsqu'on utilise une liste simple, du style[list][*] New
[*] +
[*] -
[*] =/list
Mais le truc, c'est que j'aimerai que ma liste comporte des caractère spéciaux.
Par exemple[list][*] R en Wingdings 2, couleur rouge
[*] l en Wingdings 1, couleur noir/list Quelque chose dans ce genre là.
Alors il est tout à fait possible de formater la cellule en fonction du choix de l'utilisateur avec des If ... ElseIf ... End If, mais le problème c'est que la liste déroulante que l'utilisateur voit est dans une seule et même police, donc l'affichage donne un peu n'importe quoi.
Est-ce que vous savez s'il est possible que l'affichage dans la liste déroulante soit multi-font ?
jordane45
Messages postés38238Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention 6 septembre 2024345 19 juil. 2012 à 11:57
Bonjour,
Ajoute cette macro dans la feuille contenant ta liste
Elle modifie la police en fonction du choix réalisé
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row 1 And Target.Column 2 Then
Select Case Target.Value
Case "R"
Font = "Wingdings 2"
Case "L"
Font = "Wingdings"
Case Else
Font = "Arial"
End Select
Cells(Target.Row, Target.Column).Select
With Selection.Font
.Name = Font
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
End If
End Sub
Cordialement,
Jordane,
______________________________________________________
Règles du forum à lire avant de poster une question : ICI
MrZurg12
Messages postés15Date d'inscriptionmardi 29 mai 2012StatutMembreDernière intervention20 juillet 2012 19 juil. 2012 à 14:14
Bonjour Jordane,
Merci de ta réponse.
J'obtiens bien le caractère voulu après avoir cliqué dans ma liste, mais la liste déroulante m'affiche toujours "R" et "L", et non pas l'équivalent en police Wingdings et Wingdings 2.
Pour résumer, je veux que la liste déroulante affiche "L" en Wingdins 2 et "R" en Wingdings (ça je ne sais pas le faire), et je veux que la cellule affiche "L" en Wingdings 2 et "R" en Wingdings une fois que le choix est fait (ça c'est ce que fait ton code).