colorier des cellules vides en vb.net [Résolu]

Messages postés
36
Date d'inscription
mardi 26 avril 2011
Dernière intervention
18 novembre 2011
- - Dernière réponse : ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
- 18 nov. 2011 à 10:54
bonjour
j'ai un problème concernant le coloriage des cellules vides d'un datagridview.
je veus parcourir tous les cellules du datatgridview et à chaque fois où je trouve une cellules vide je lui affecte une coleure détérminé.
j'ai écrit le code suivant:
dim x as integer
dim y as integer

for x=0 to DataGridView.ColumnCount
For y = 0 To DataGridView.RowCount
Dim vv As Object = DataGridView.Item(x, y).Value
If vv Is DBNull.Value Then
DataGridView.Item(x, y).Style.BackColor = Color.Red
End If
Next
next

le problème de ce code c'est qui fait colorier seulement les cellules vides du premier colonne les autres cellules restent telle quelles sont.
donc la valeur de x ne s'incremente pas au cours de l'execution.
je sais où est le problème
est ce que quelqu'un a une idée?
merci d'avance
cordialement
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
3
Merci
Bonjour,
DBNull correspond à une valeur inexistante, ce qui n'est pas pareil qu'une chaîne vide.


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient

Merci ucfoutu 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de ucfoutu
Messages postés
3241
Date d'inscription
jeudi 26 novembre 2009
Dernière intervention
26 novembre 2018
3
Merci
Salut

D'abord sers toi du debugger
(outil indispensable pour le programmeur
mets un point d'arret à la ligne
for x=0 to DataGridView.ColumnCount 

lances le prog et à l'arret
avec le watch verifie les valeur x y
vv
verifie aussi le If vv Is DBNull.Value
avec le watch tout en continuant pas à pas F8

tu sauras au ce qui se passe

Merci cs_ShayW 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de cs_ShayW
Messages postés
36
Date d'inscription
mardi 26 avril 2011
Dernière intervention
18 novembre 2011
0
Merci
bonjour
merci pour la réponce
j'ai pas mentionné que j'ai utulisé la condition suivante avant d'essayer avec dbNull
j'ai ecris:
if dataGridView.Item(x, y).Value=""
mais j'ai toujour une message d'erreur
je sais pas comment détécté une cellule vide . est ce que vous avez une idée
merci
Commenter la réponse de saadouli7
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
Re,

Tu as probablement à la fois des cellules contenant DbNull ert des cellules contenant une chaîne vide (EmptyString)
Il te faut donc agir dans un cas ET dans l'autre
Essaye donc :
If vv Is DBNull.Value Then
   DataGridView.Item(x, y).Style.BackColor = Color.Red
else if len(vv) = 0 then
   DataGridView.Item(x, y).Style.BackColor = Color.Red
End If 


Je n'y connais rien en VB.Net, mais je crois qu''il t'offre en plus (à voir) IsNullOrEmpty.

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Commenter la réponse de ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
Cette ligne m'inquiète, par contre :
Dim vv As Object = DataGridView.Item(x, y).Value 

Ta datagridview contient des objets ? T'es sûr ?
C'est à mon avis là l'erreur principale
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Commenter la réponse de ucfoutu

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.