Couleur listeview avec condition

Résolu
jeveuxréussir Messages postés 18 Date d'inscription vendredi 8 octobre 2010 Statut Membre Dernière intervention 12 décembre 2023 - 8 sept. 2022 à 10:52
vb95 Messages postés 3472 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 13 avril 2024 - 9 sept. 2022 à 09:03

Bonjour,

Je poste ce nouveau poste avec le code permettant de mettre en couleur des lignes de ma Listview1 selon condition.

Le problème c'est que je rencontre le problème du code d'erreur "Problème d'exécution 424, objet requis" mais je ne trouve pas d'où est ce que peut provenir le problème

'couleur
  With Userform1
     colonne = ListView1.ColumnHeaders.Count
     ligne = ListView1.ListItems.Count
       For i = 1 To ligne
          If .ListView1.ListItems(i).ListSubItems(7) < 0 Then
             .ListView1.ListItems(i).forcolor = RGB(255, 0, 0)
             
               For j = 1 To colonne - 1
                 .ListView1.ListItems(i).ListSubItems(j).forcolor = RGB(255, 0, 0)
               Next
          End If
        Next
    End With

Quelqu'un pourrait m'aider ?

Merci d'avance pour votre aide

1 réponse

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
Modifié le 8 sept. 2022 à 11:27

Bonjour,

mettre Option Explicit en haut du module pour obliger à déclarer les variables

Sub test()
Dim colonne As Integer
Dim ligne As Integer
Dim i As Integer
Dim j As Integer
     colonne = ListView1.ColumnHeaders.Count
     ligne = ListView1.ListItems.Count
       For i = 1 To ligne
          If ListView1.ListItems(i).ListSubItems(7) < "0" Then
             ListView1.ListItems(i).ForeColor = RGB(255, 0, 0)
             For j = 1 To colonne - 1
                 ListView1.ListItems(i).ListSubItems(j).ForeColor = RGB(255, 0, 0)
               Next j
          End If
        Next i
End Sub

A lire

Voilà


0
jeveuxréussir Messages postés 18 Date d'inscription vendredi 8 octobre 2010 Statut Membre Dernière intervention 12 décembre 2023
8 sept. 2022 à 11:33

Bonjour Le Pivert,

Merci pour votre aide. Le code fonctionne mais c'est seulement la première colonne qui passe en rouge mais pas toute la ligne.

Pour que toute la ligne passe en rouge, je suis obligé de cliquer sur la ligne. Est-ce qu'il est possible de forcer le passage en rouge de toute la ligne et pas seulement la colonne ?

Merci pour votre aide.

0
jeveuxréussir Messages postés 18 Date d'inscription vendredi 8 octobre 2010 Statut Membre Dernière intervention 12 décembre 2023 > jeveuxréussir Messages postés 18 Date d'inscription vendredi 8 octobre 2010 Statut Membre Dernière intervention 12 décembre 2023
Modifié le 9 sept. 2022 à 09:00

Bonjour Le Pivert,

Finalement j'ai trouvé l'astuce. J'ai crée un bouton dans la listview sur lequel j'ai associé le code. Et au moment de l'activation du Userform1, le bouton se déclenche et lance le code.

Merci infiniment.

Je clôture la discussion.

0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137 > jeveuxréussir Messages postés 18 Date d'inscription vendredi 8 octobre 2010 Statut Membre Dernière intervention 12 décembre 2023
8 sept. 2022 à 11:51

A la place du bouton tu peux mettre le code dans une Sub comme dans l'exemple donné, que tu appelles à l'ouverture

@+

0
vb95 Messages postés 3472 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 13 avril 2024 169 > jeveuxréussir Messages postés 18 Date d'inscription vendredi 8 octobre 2010 Statut Membre Dernière intervention 12 décembre 2023
9 sept. 2022 à 09:03

Bonjour à vous deux

J'ai clôturé la discussion ( "marqué en résolu" ) .

voir les 3 ... du premier message de la discussion avec un clic droit .

0
Rejoignez-nous