Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
770 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [vb] problème de boucle avec datagridview

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[vb] problème de boucle avec datagridview

n°1889278
akabis
.
Posté le 29-05-2009 à 09:46:34  profilanswer
 

Bonjour,
 
J'ai 2 boutons radio, une datagridview, et un bouton.
Lors du click sur le bouton:
Si je sélectionne le 1er radio bouton, j'ai un message m'indiquant que j'ai fait le choix n°1.
Si je sélectionne le 2ème bouton radio, je rempli un tableau de 2 colonnes (le nombre de ligne n'est pas connu à l'avance mais reste limité, d'ou le for i = 0 to 1000, on atteindra jamis les 1000)
Et j'ai un message me donnant la valeur des cellules.
 
Je souhaite qu'il m'indique la valeur des cellules. La première colonne ne peut être vide, sauf si j'ai teminé de renseigner.
 
Donc je souhaite:
jusqu'à ce que la cellule soit vide, prendre les valeurs de cellule et les afficher.
 
 
Le problème avec mon code et qu'il ne sort pas de la boucle for (normal j'ai mis 1000 alors que je veux stopper lorsque la cellule testé est vide) et qu'il m'affiche la derniere ligne, qui est vide.
 
 
If RadioButton2.Checked = True Then
            MsgBox("Choix n°2" )
           
            ' tant que la datagrid n'est pas vide
      While DataGridView1.Rows.Item(varX).Cells.Item(0).Value IsNot DBNull.Value
               
  ' pour une valeur de ligne allant de zéro à mille
          For i = 0 To 1000
                 ' les variables var1 et var2 prennent les valeurs de cellule
                 var1 = DataGridView1.Rows.Item(i).Cells.Item(0).Value
                 var2 = DataGridView1.Rows.Item(i).Cells.Item(1).Value
                 MsgBox("Colonne 1: " & var1)
                 MsgBox("Colonne 2: " & var2)
          Next
       End While
 
Else
    MsgBox("Choix n°1" )
End If
   MsgBox("Traitement terminé" )
 
 
ps: je précise, je ne suis pas developpeur et mon code n'est surement pas très propre ... déjà qu'il ne fonctionne pas :)


Message édité par akabis le 29-05-2009 à 09:50:28
mood
Publicité
Posté le 29-05-2009 à 09:46:34  profilanswer
 

n°1889311
akabis
.
Posté le 29-05-2009 à 10:39:35  profilanswer
 

j'ai remplacé mon imbrication de boucle:
While
  for
  next
End while
 
Remplacé par  
 
i=0
Do While DataGridView1.Rows.Item(i).Cells.Item(0).Value IsNot DBNull.Value
               
                var1 = DataGridView1.Rows.Item(i).Cells.Item(0).Value
                var2 = DataGridView1.Rows.Item(i).Cells.Item(1).Value
                i = i + 1
                MsgBox("Colonne 1: " & var1)  
                 MsgBox("Colonne 2: " & var2)  
Loop

 
Ca fonctionne jusquà la derniere itération. A cette derniere itération il prend les champs vide et le débogger bloque sur cette ligne:
DataGridView1.Rows.Item(i).Cells.Item(0).Value IsNot DBNull.Value
 
et m'indique: l'index était hors limite. Il ne doit pas être négatif ou inferieur à la taille de la collection. nom du parametre: index
...kézako?
merci
 
eDIT: j'ai l'impression qu'une cellule vide ne prend pas de valeur et donc le met dans les choux
Edit2: j'ai fait le teste avec un if
i=0
if While DataGridView1.Rows.Item(i).Cells.Item(0).Value IsNot DBNull.Value then
               
                var1 = DataGridView1.Rows.Item(i).Cells.Item(0).Value
                var2 = DataGridView1.Rows.Item(i).Cells.Item(1).Value
                i = i + 1
                MsgBox("Colonne 1: " & var1)  
                 MsgBox("Colonne 2: " & var2)  
end if

 
Si il y a une valeur, il l'affiche sinon il ne fait rien. Donc dans ce cas ça fonctionne.
J'ai l'impression qu'avec les itérations, même si la conition est vérifié, il fait une dernière boucle ce qui bloque tout.
J'ai essayé avec:
Do
Loop while
... même pb


Message édité par akabis le 29-05-2009 à 12:00:32

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [vb] problème de boucle avec datagridview

 

Sujets relatifs
Problème de script création utilisateurs Active DirectoryProbleme pour inserer flash dans HTML
Simplifier une boucleProblème avec Find(), Excel Vba
[Résolu][Javascript]Boucle de test et définition de variable.problème de script qui s'arrête avant la fin [RESOLU]
problème de jointure entre deux requette séparéles instructions fonctionnent mais pas le script
Problème vérification pseudoprobleme sur Algorithme
Plus de sujets relatifs à : [vb] problème de boucle avec datagridview


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR