![]() |
|
Forum
|
|
|
#1 (permalink) |
|
XLDnaute Nouveau
Date d'inscription: novembre 2005
Messages: 12
|
Bonsoir le Forum,
Je voudrais que lorsque je click sur un élément de ma ListView, cette ligne change de couleur. Puis lorsque je sélectionne une deuxième ligne, elle change de couleur comme la première et la première reprenne sa couleur d'origine. Avec ce code j'arrive a changer de couleur, mais lorsque je click sur un autre élément, le premier élément ne retrouve pas sa couleur d'origine. Private Sub ListView1_Click() Dim wItem As ListItem Dim C As Byte Set wItem = ListView1.SelectedItem ListView1.ForeColor = RGB(1, 0, 0) wItem.ForeColor = RGB(0, 0, 255) For C = 1 To ListView1.ColumnHeaders.Count wItem.ListSubItems(C).ForeColor = RGB(0, 0, 255) Next End Sub Quelqu’un aurai une idée sur la correction à apporter ? Message édité par: Baboune, à: 11/11/2005 22:13 |
|
|
|
| ANNONCES | |||
|
|
|
|
#2 (permalink) | |
|
XLDnaute Barbatruc
Date d'inscription: février 2005
Localisation: Saint-Etienne
Version Excel : Excel XP (PC)
Messages: 4 420
|
Bonjour baboune
La seule combine que j'ai trouvé c'est de reboucler sur chaque item avant pour les remettres en noir. j'ai ajouté un repaint, car bizarrement chez moi les changements de couleurs ne se faisaient pas sans. Citation:
|
|
|
|
|
|
|
#3 (permalink) |
|
XLDnaute Nouveau
Date d'inscription: novembre 2005
Messages: 12
|
Bonjour Hervé, bonjour le Forum
J'ai une erreur d'exécution '35600' Index hors limite avec le code proposé par Hervé. avec la ligne : .ListItems(i).ListSubItems(C).ForeColor =<index hors limite> Y a t'il un probleme de déclaration avec 'i' et 'c' ou c'est 'RGB (1,0,0)' qui pose probléme. J'ai modifier la déclaration de 'i' et 'c' en long, integer ... sans résultat. une idée ? |
|
|
|
|
|
#4 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: février 2005
Messages: 3 714
|
bonjour Baboune , bonjour cher Hervé
tu peux tester Private Sub ListView1_Click() Dim wItem As ListItem Dim C As Byte Dim i As Byte With ListView1 For i = 1 To .ListItems.Count For C = 1 To .ColumnHeaders.Count - 1 .ListItems(i).ForeColor = RGB(1, 0, 0) .ListItems(i).ListSubItems(C).ForeColor = RGB(1, 0, 0) Next C Next i Set wItem = .SelectedItem wItem.ForeColor = RGB(0, 0, 255) For C = 1 To .ColumnHeaders.Count - 1 wItem.ListSubItems(C).ForeColor = RGB(0, 0, 255) Next C End With Me.Repaint End Sub bonne journée MichelXld |
|
|
|
|
|
#5 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: février 2005
Localisation: Saint-Etienne
Version Excel : Excel XP (PC)
Messages: 4 420
|
re baboune, salut ami michel
Completement d'accord avec michel, il faut que tu ajustes tes boucles. en pièce jointe petite démo du résultat obtenu. salut [file name=treeviewcouleur.zip size=21871]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/treeviewcouleur.zip[/file] |
|
|
|
![]() |
| Liens sociaux |
| Outils de la discussion | |
|
|