Re problème de Listview

Calvus

XLDnaute Barbatruc
Bonsoir le forum,

Encore une bizarrerie de Listview.

Je colore la seule ligne que comporte la Listview, mais je n'arrive pas à utiliser une seule ligne de code pour cela.

Code utilisé :
VB:
Dim i As Integer
For i = 1 To 7
ListView1.ListItems(1).ForeColor = RGB(200, 0, 100)
ListView1.ListItems(1).ListSubItems(i).ForeColor = RGB(200, 0, 100)
Next

En mettant :
VB:
Dim i As Integer
For i = 1 To 7
ListView1.ListItems(1).ListSubItems(i).ForeColor = RGB(200, 0, 100)
Next

toute la ligne se colore sauf la 1ère cellule !

Avez vous une idée du pourquoi ?

Merci.
 

Lone-wolf

XLDnaute Barbatruc
Bonjour Calvus :), le Forum :)

VB:
Private Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem)
  With ListView1
  For i = 1 To 7
  For k = 1 To .ColumnHeaders.Count - 1
  .ListItems(i).ForeColor = RGB(200, 0, 100)
  .ListItems(i).ListSubItems(k).ForeColor = RGB(200, 0, 100)
  Next k
  Next i
  End With
End Sub

Private Sub ListView1_DblClick()
  With ListView1
  For i = 1 To 7
  For k = 1 To .ColumnHeaders.Count - 1
  .ListItems(i).ForeColor = RGB(0, 0, 0)
  .ListItems(i).ListSubItems(k).ForeColor = RGB(0, 0, 0)
  Next k
  Next i
  End With
End Sub
 
Dernière édition:

Lone-wolf

XLDnaute Barbatruc
Re Calvus

Si tu regarde bien, j'ai répondu à ta question. Est-tu sûr de n'avoir rien oublié dans le 2ème code ou d'avoir codé juste?? ;)

Si tu veux que la 1ère colonne en couleur
For i = 1 To 7
ListView1.ListItems(i).ForeColor = RGB(200, 0, 100)
Next i
 
Dernière édition:

Si...

XLDnaute Barbatruc
Bonjour

Salut les habitués du casse-tête qu’est le contrôle ListView.

Si… : aurais-je mieux compris que L-w ;) ?

II a quand même l’avantage par rapport au contrôle ListBox de pouvoir formater chaque item. Mais l’inconvénient, si c’en est un, est de le faire un par un. Donc, Calvus, comme tu l’as remarqué, il te faudra les 2 lignes pour traiter chaque colonne (de la première à la dernière).

Un exemple de ce qu'on peut obtenir ...
 

Pièces jointes

  • listviewCouleurs.xlsm
    29.8 KB · Affichages: 46

Lone-wolf

XLDnaute Barbatruc
Bonjour Si... :)

Depuis la dernière version d'XLD, on ne vois plus les "discussions similaires" en bas de page. Je sais que la question à ce sujet a été posée, parce que je cherchais le fil où on parle de la sélection de toute la ligne avec couleur de fond en rouge par exemple et texte en blanc. Est-ce que toi tu aurais une solution?
 

ChTi160

XLDnaute Barbatruc
Bonjour Calvus
Bonjour le fil ,le forum
Peut etre .
VB:
With ListView1
With .ListItems(1)
           .ForeColor=vbRed
        For l=1 to 7
            .ListSubItems(l).ForeColor=vbRed
         Next ' l
   End With
End With
Je suis sur mon telephone lol
Bonne fin de journee
Amicalement
Jean marie
 

Si...

XLDnaute Barbatruc
Re

Oups j’avais zappé une seule ligne et pour cause ! je devrais m’attendre à tout de ta part Calvus * : un tel contrôle pour une seule ligne c’est prendre la grosse Bertha pour tuer un moustique !

Une ligne de plus pourrait, dans ce cas, faire l’affaire : ListView1.ListItems(1).Selected = False

*Tu ne nous fournis tes renseignements qu’au goutte à goutte donc, tintin, pour trouver rapidement le filtre magique !

Ce pourrait être le cas après un filtre mais …

ChTi ;) ne soit pas choqué, L-w est oujours sur les rails pour ce genre de réponse. Je m'attends à tout pour avoir utiliser un voire 2 "filtre":oops: :D.
 

Pièces jointes

  • Listview 1ligne.xlsm
    26.7 KB · Affichages: 37

Calvus

XLDnaute Barbatruc
Bonsoir les Zaza, les Mimi, les Zami !

Un exemple de ce qu'on peut obtenir ...
Si, Tu m'énerves !

la ligne avec couleur de fond en rouge par exemple et texte en blanc
Comme je n'ai en effet qu'une ligne, je voulais raccourcir mon code au maximum, une ligne donc ! Mais je vois que ce n'est pas possible avec une Listview. ;) Exès de zèle, quand tu nous tiens...
Je suis sur mon telephone lol

Je retiens ton code pour une prochaine fois, il est pas mal aussi.
Est ce qu'il fait aussi balai de sorcière ton téléphone ? Pour voyager ? :D
je devrais m’attendre à tout de ta part Calvus * : un tel contrôle pour une seule ligne c’est prendre la grosse Bertha pour tuer un moustique !
Ben quoi ! Qui peut le plus peut le moins ! :p
Maintenant, je sais que tu aimes comprendre pourquoi, alors je vais te le dire. C'est pour afficher dans un formulaire la dernière ligne qui a été saisie, et permet donc à l'utilisateur de contrôler sa saisie en même temps. Et je trouve que c'est plus lisible qu'une Listbox. Voilou.
Et puis j'aime pas les moustiques !

*Tu ne nous fournis tes renseignements qu’au goutte à goutte donc, tintin, pour trouver rapidement le filtre magique !
Alors là, tu exagères ! J'ai tout fourni, et en condensé encore. Tu as juste peur qu'un jour je ne te rattrape...;)

A bientôt les Zaza, les Mimi, les ZOZOS ! :)
 

Si...

XLDnaute Barbatruc
Re,

Un fois de plus je me mouille sans para chute L-w :confused:.

Bonsoir les Zaza, les Mimi, les Zami !
Si, Tu m'énerves !
Cool Clavus : on ne doit voir rouge quand on ne voit que du bleu :cool:!

Voilà les propositions que tu aurais eues, avec tes dernières explications, en adaptant de mon dernier fichier et avec celle de Berthe aux petits pieds mais qui tient à sa seule ligne
VB:
For k = 1 To 6: Me("C" & k) = Range("A14")(1, k): Next

Je suis un élève qui a dépassé son métre (1m92)*. Pourquoi voudrais-tu que je n’accepte pas que tu le fasses avec tes 1m92001 ?

* je blague encore : bien que mon Maître ne mesure que 1,52, je ne lui arrive pas encore à la cheville :oops:!
 

Pièces jointes

  • Listview dernière ligne.xlsm
    31.7 KB · Affichages: 42

Discussions similaires

Réponses
29
Affichages
793

Membres actuellement en ligne

Statistiques des forums

Discussions
312 106
Messages
2 085 352
Membres
102 871
dernier inscrit
Maïmanko