XL 2016 COULEUR LIGNE DANS LISTBOX

  • Initiateur de la discussion Initiateur de la discussion KTM
  • Date de début Date de début

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 !

KTM

XLDnaute Impliqué
Bonjour Forum
Ma preoccupation du jour :
J'ai une listbox multicolonnes sur un userform qui affiche les donnees d'une table de 10 colonnes.
Les donnees de la colonne 9 sont soit "Stable" soit "Non_Stable"
J"aimerais mettre en couleur dans ma listbox les lignes contenant le mot "Stable"
Je l'ai fait sur ma table sans problemes mais je voudrais le faire ressortir sur ma listbox. Est_ce possible ?
Merci à tous
 
Cela dit si l'on veut mettre les lignes en surbrillance par sélection multiple aucun problème, voyez le fichier joint et le code de l'USF :
VB:
Private Sub UserForm_Initialize()
Dim i&
With [A1].CurrentRegion
    If .Rows.Count > 1 Then
        With .Offset(1).Resize(.Rows.Count - 1)
            .Name = "Liste"
            ListBox1.RowSource = "Liste"
            For i = 1 To .Rows.Count
                If .Cells(i, 9) = "Stable" Then ListBox1.Selected(i - 1) = True
            Next
        End With
    Else
        ListBox1.RowSource = ""
    End If
End With
End Sub
A+
 

Pièces jointes

Pour peaufiner fichier (2) avec 2 OptionButtons :
VB:
Private Sub OptionButton1_Change()
Dim i&
With ListBox1
    If .RowSource = "" Then Exit Sub
    For i = 0 To .ListCount - 1
        .Selected(i) = .List(i, 8) = IIf(OptionButton1, "Stable", "Non_Stable")
    Next
End With
End Sub
 

Pièces jointes

Pour peaufiner fichier (2) avec 2 OptionButtons :
VB:
Private Sub OptionButton1_Change()
Dim i&
With ListBox1
    If .RowSource = "" Then Exit Sub
    For i = 0 To .ListCount - 1
        .Selected(i) = .List(i, 8) = IIf(OptionButton1, "Stable", "Non_Stable")
    Next
End With
End Sub
C'est exactement ce que je recherchais
Franchement je ne sais plus comment vous dire merci mais MERCI.
 
Bonjour
bah je voulais juste que ça soit statique comme dans un tableau!
"Recouvre" alors les articles de cette listbox par autant de labels que de lignes visibles et :
donne à chaque label la propriété Backstyle = Transparent et la couleur de ton choix
Reviens lorsque tu auras passé cette étape qui, elle, n'est pas en mode exécution, mais en mode création.
Ceci étant ; voilà du bien peu utile bien cher payé.

EDIT : Et finalement même pas, car les labels ne sauraient être au premier plan d'une listbox.
Il te faudrait alors (mais encore plus cher payé) :
- soit (et je ne saurais trop te le déconseiller) utiliser des fonctions de l'Api de Windows
- soit insérer des Frames (1 par ligne à "colorier"), leur donner le zorder et le caption correspondant au texte de l'article !
Bref : une usine à gaz plus contre-productive qu'autre chose.
 
Dernière édition:
Bonjour borain, jmfmarques,
merci ça fonctionne! sauf que on peut sélectionner et désélectionner bah je voulais juste que ça soit statique comme dans un tableau!
Pas besoin d'usine à gaz, il suffit de bloquer les sélections, fichier (4) :
VB:
Dim flag As Boolean 'mémorise la variable

Private Sub ListBox1_Change()
If flag Then Exit Sub 'évite le bouclage
UserForm_Initialize
End Sub

Private Sub UserForm_Initialize()
Dim i&
flag = True
With [A1].CurrentRegion
    If .Rows.Count > 1 Then
        With .Offset(1).Resize(.Rows.Count - 1)
            .Name = "Liste"
            ListBox1.RowSource = "Liste"
            For i = 1 To .Rows.Count
                ListBox1.Selected(i - 1) = i Mod 2
            Next
        End With
    Else
        ListBox1.RowSource = ""
    End If
End With
flag = False
End Sub
A+
 

Pièces jointes

Dernière édition:
Bonjour,

Il existe d'autres façons que la couleur pour mettre en évidence des lignes de ListBox

Sans titre - Copie (2).png


Boisgontier
 

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
3
Affichages
841
Réponses
9
Affichages
1 K
Retour