IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

Certaines lignes en couleur dans un ListView en VB6


Sujet :

VB 6 et antérieur

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 18
    Points : 10
    Points
    10
    Par défaut Certaines lignes en couleur dans un ListView en VB6
    Bonjour,

    Je souhaiterais que dans mon listview, chaque ligne donc la valeur de la 2eme colonne est inférieur à 25 soit coloriée en rouge. Je crois que le backcolor que sur une ligne en VB6 est impossible, donc alors modifier simplement la couleur du texte.

    Voici ce que j'ai écris:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
          If (tabforlist(j).total) < 25 Then
               listArbeit2.ListItems(j).ForeColor = vbRed
               listArbeit2.ListItems(j).ListSubItems(1).ForeColor = vbRed
          End If
    des fois cela me colorie des valeurs, ou d'autres fois cela fait planter mon programme donc je ne sais pas trop comment faire !

    Merci de votre aide

  2. #2
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    listArbeit2.ListItems(j).ListSubItems(1).ForeColor = vbRed
    et qu'as tu prévu pour le cas où il n'y aurait pas de subitem 1, par exemple ?
    :

    PS : dis nous aussi comment "ça plante" : avec ou sans message d'erreur et, le cas échéant, lequel ?

  3. #3
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    heu je n'ai rien prévu, mais il y a toujours un subitems 1.
    le message d'erreur qui apparait est "erreur 35600 - Limite de l'index dépassée".

    J'ai longuement cherché avant de poster mon message, mais vraiment je ne trouve pas.

  4. #4
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    et ton j ? est-il toujours là ? inclut-il bien le fait que le 1er item est 0 ?
    : :

  5. #5
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    ah oui pardon j'ai oublié de le mentionner:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    For j = 0 To cpt - 1
     
          Set vlist = listArbeit2.ListItems.Add(, , tabforlist(j).nrarb)
          vlist.SubItems(1) = tabforlist(j).total
     
          If (tabforlist(j).total) < 25 Then
                listArbeit2.ListItems(j).ForeColor = vbRed
                listArbeit2.ListItems(j).ListSubItems(1).ForeColor = vbRed
          End If
     
    Next j
    Mon For me permet de remplir en même temps ma ListView, et donc il n'a logiquement aucun probleme car l'insertion mar très bien.

    Sinon lorsque je met comme condition de mon If (listArbeit2.ListItems(j).ListSubItems(1)) il m'indique une erreur dessus.

  6. #6
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Je persite à croire que le responsable est un subitem 1 absent...

    essaye (juste pour voir ce qui se passe) de faire précéder le traitement par un "on error resume next" (avec un err clear à la fin du traitement) et dis-nous ? :

  7. #7
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    J'ai donc inséré un "on error resume next", je n'ai donc plus de message d'erreur, mais le probleme est que les lignes coloriées n'ont pas vraiment de rapport avec la condition du si.

    par ex la condition est < 25

    et ca me souligne le 27 le 10; mais le 14 et le 12 ne sont pas coloriés.

  8. #8
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Hé !

    ton "on error resume next" doit être bien évidemment pacé juste après ton 'Then" !!!!!!!!!!...........

    Où as-tu la tête ?????

    Excuse-moi....

    et :
    et ca me souligne le 27 le 10; mais le 14 et le 12 ne sont pas coloriés
    donne à penser que ton 14 et ton 12 n'ont pas de subitem 1

  9. #9
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    et bien avec le "On Error Resume Next" après le Then c'est pas mieux !

    Mais j'ai remarqu' quelquechose. Juste avant le If, j'ai placé un "MsgBox listArbeit2.ListItems(j).ListSubItems(1)" et lors de l'execution 2 msgbox s'affichent alors qu'il y a trois éléments...

  10. #10
    Membre régulier
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2005
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2005
    Messages : 64
    Points : 95
    Points
    95
    Par défaut
    salut,
    l'erreur vient du faite que la collection listitems commence par l'index 1 et non zéro
    For j = 0 To cpt - 1

    Set vlist = listArbeit2.ListItems.Add(, , tabforlist(j).nrarb)
    vlist.SubItems(1) = tabforlist(j).total

    If (tabforlist(j).total) < 25 Then
    listArbeit2.ListItems(j+1).ForeColor = vbRed
    listArbeit2.ListItems(j+1).ListSubItems(1).ForeColor = vbRed
    End If

    Next j

  11. #11
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Bravo !!!!

    Celà va résoudre une partie, mais pas le reste...
    Pour être sur que tout fonctionne maintenant bien, il va falloir vérifier sans le "on error resume next".

  12. #12
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    ah parfait !!
    merci beaucoup !

    meme sans le on error resume next ca marche parfaitement!

    Merci à vous deux pour votre aide.

  13. #13
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    et la petite balise "résolu" ?...
    STP

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 01/09/2011, 15h45
  2. certains texte en couleur dans une liste deroulante
    Par moicats dans le forum Access
    Réponses: 17
    Dernier message: 07/04/2006, 09h19
  3. [C#] Probleme de couleur dans une ListView
    Par Oberown dans le forum Windows Forms
    Réponses: 1
    Dernier message: 05/12/2005, 17h39
  4. Comment mettre des lignes de couleur dans une TCheckListBox ?
    Par Isa31 dans le forum Composants VCL
    Réponses: 9
    Dernier message: 31/03/2005, 08h40
  5. [C#] Comment mettre une ligne en couleur dans mon DataGrid ?
    Par vandeyy dans le forum Windows Forms
    Réponses: 7
    Dernier message: 19/07/2004, 10h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo