Changement de couleur de ligne vba

Résolu
erokage Messages postés 91 Date d'inscription mardi 19 mai 2009 Statut Membre Dernière intervention 23 juin 2009 - 19 mai 2009 à 08:03
erokage Messages postés 91 Date d'inscription mardi 19 mai 2009 Statut Membre Dernière intervention 23 juin 2009 - 20 mai 2009 à 15:03
Bonjours a tous!
Mon problème est que dans mon datagrid je ne parviens pas a mettre en rouge les ligne ou il y a oui dans un certain item!
Après la simulation vb me dit que l'index est hors limite!
Voici ma "fonction" qui devrait le faire en un clic mais non!
Si quelqu'un peu m'aider!?.

Dim i = DataGridView1.Rows.Count
Dim x = 0
Do
If DataGridView1.Rows(x).Cells.Item(7).ToString = "OUI" Then
DataGridView1.Rows(x).DefaultCellStyle.BackColor = Color.Red
End If
x = x + 1

Loop While x = i - 1

30 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
19 mai 2009 à 13:59
dans le Header ?

je te parles d'un

Messagebox.Show DataGridView1.Rows(x).Cells.Item(7).Value.ToString()
3
erokage Messages postés 91 Date d'inscription mardi 19 mai 2009 Statut Membre Dernière intervention 23 juin 2009
19 mai 2009 à 14:19
Sa y est, j'ai trouvé grâce a toi!!!! Il manquais le mot value dans le "IF" merci infiniment!!!!




For x As Integer = 0 To DataGridView1.Rows.Count - 1
MessageBox.Show(DataGridView1.Rows(x).Cells.Item(5).Value.ToString())
If DataGridView1.Rows(x).Cells.Item(5).Value.ToString = "OUI" Then
DataGridView1.Rows(x).DefaultCellStyle.BackColor = Color.Red
End If
Next x
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
19 mai 2009 à 09:31
pourquoi utiliser une boucle Do...While ?
(ta condition de sortie est fausse, d'ailleurs)

For x As Integer = 0 To DataGridView1.Rows.Count -1
If DataGridView1.Rows(x).Cells.Item(7).ToString = "OUI" Then
DataGridView1.Rows(x).DefaultCellStyle.BackColor = Color.Red
End If
Next x
0
erokage Messages postés 91 Date d'inscription mardi 19 mai 2009 Statut Membre Dernière intervention 23 juin 2009
19 mai 2009 à 09:51
Merci beaucoup!
J'avais essayer de faire le faire mais je n avais pas réussi!
Par contre sa ne marche toujours pas! il me dit toujours que l'index était hors limite et il me montre cette ligne:

If DataGridView1.Rows(x).Cells.Item(7).ToString = "OUI" Then

Bon je reviens c est la pose café!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
19 mai 2009 à 09:54
le '7' du nombre de colonnes doit pas aller
tu cherches bien la huitième colonne ?
0
erokage Messages postés 91 Date d'inscription mardi 19 mai 2009 Statut Membre Dernière intervention 23 juin 2009
19 mai 2009 à 10:24
Je pense qu'en faite c'était la 5m colonne parce que la première et la 0 mais la il dois y avoir un bug parce que je n'est plus de message d'erreur mais la ligne ne passe pas au rouge , je ne comprend pas il n' y a pas de raison pour que sa ne marche pas , surtout avec ton aide!
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
19 mai 2009 à 10:34
place ton curseur de texte sur la ligne du IF
presse F9
et relance ton programme

reste plus qu'a executer en pas a pas (F8) pour traquer le bug^^
0
erokage Messages postés 91 Date d'inscription mardi 19 mai 2009 Statut Membre Dernière intervention 23 juin 2009
19 mai 2009 à 10:54
se doit être ma condition du if qui n est pas bonne parce qu'il ne ne la fait pas.
Quand il arrive dessus après il saute une ligne donc la ligne

DataGridView1.Rows(x).DefaultCellStyle.BackColor = Color.Red

ne s'effectue pas.
0
erokage Messages postés 91 Date d'inscription mardi 19 mai 2009 Statut Membre Dernière intervention 23 juin 2009
19 mai 2009 à 10:54
Comme si ce n'étais jamais égale a oui!!
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
19 mai 2009 à 10:59
et à quoi est-ce égal ?

en mode pas a pa, tu peux survoller du curseur du texte selectionné (variables, etc.) pour que VB t'en donne la valeur.

ainsi, tu pourrais obtenir le resultat de ton xxxx.ToString()
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
19 mai 2009 à 11:00
au fait, que contient cette case de ton DataGrid ? (quel type de case est-ce ?)
0
erokage Messages postés 91 Date d'inscription mardi 19 mai 2009 Statut Membre Dernière intervention 23 juin 2009
19 mai 2009 à 11:15
oui ou non comme un booleen
0
erokage Messages postés 91 Date d'inscription mardi 19 mai 2009 Statut Membre Dernière intervention 23 juin 2009
19 mai 2009 à 11:21
le x est a 0 mais il ne vois pas le oui il passe direct au end if et il boucle par contre il conte parfaitement le nombre de boucle et arrivé a la fin il sort de la boucle et voila
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
19 mai 2009 à 11:22
alors testes un boolean, quelle utilité de jouer avec "OUI" qui manifestement ne fonctionne pas

te faudrait, au pire, tester "True" et non "OUI" ...

tentes simplement:

If DataGridView1.Rows(x).Cells.Item(7) Then
...
0
erokage Messages postés 91 Date d'inscription mardi 19 mai 2009 Statut Membre Dernière intervention 23 juin 2009
19 mai 2009 à 11:42
je viens de le faire!
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
19 mai 2009 à 11:47
et ?
0
erokage Messages postés 91 Date d'inscription mardi 19 mai 2009 Statut Membre Dernière intervention 23 juin 2009
19 mai 2009 à 12:15
ba rien de mieux
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
19 mai 2009 à 13:01
donc c'est pas un Boolean que ça renvoie... tout bêtement.

que renvoie:
DataGridView1.Rows(x).Cells.Item(7).Value

?

c'est toi qui a le code, le projet...
0
erokage Messages postés 91 Date d'inscription mardi 19 mai 2009 Statut Membre Dernière intervention 23 juin 2009
19 mai 2009 à 13:54
il faudrait que j aille voir dans le header mais je ne sais pas comment l ouvrir
0
erokage Messages postés 91 Date d'inscription mardi 19 mai 2009 Statut Membre Dernière intervention 23 juin 2009
19 mai 2009 à 14:06
la fenêtre s'ouvre et sa dit "oui" donc c est oui
0
Rejoignez-nous