Remplir flexgrid sur la ligne qui suit

Résolu
yestaface Messages postés 15 Date d'inscription jeudi 6 septembre 2007 Statut Membre Dernière intervention 18 novembre 2007 - 20 oct. 2007 à 11:36
yestaface Messages postés 15 Date d'inscription jeudi 6 septembre 2007 Statut Membre Dernière intervention 18 novembre 2007 - 20 oct. 2007 à 14:13
Bonjour,
voila je suis en train de developper un logiciel de suivi de travaux,
et je voulais qu' avec un MSflexgrid et une command_button remplir la flexgrid
j'arrive à remplir la flexgrid avec mon code mais je n'arrive pas à remplir la ligne qui suis
VOICI mon code, j'arrive pas à donner une nouvelle valeur à I.

Private Sub CommandButton1_Click()
'Initialisation de la MSFlexGrid1
Dim I As Integer
I = 1
For I = 1 To 40
    MSFlexGrid1.Rows = 40
    MSFlexGrid1.AddItem ""
    'MsFlexGrid1.Col = 0
    MSFlexGrid1.TextMatrix(I, 0) = I
    MSFlexGrid1.TextMatrix(I, 1) = ComboBox1.Text 'Appt
    MSFlexGrid1.TextMatrix(I, 2) = ComboBox3.Text 'entreprise
    MSFlexGrid1.TextMatrix(I, 3) = ComboBox4.Text 'piece
    MSFlexGrid1.TextMatrix(I, 4) = ComboBox5.Text 'Action
    MSFlexGrid1.TextMatrix(I, 5) = ComboBox6.Text 'type_de_travaux
    MSFlexGrid1.TextMatrix(I, 6) = ComboBox7.Text 'Position
    MSFlexGrid1.TextMatrix(I, 7) = "( " & TextBox7.Text & " )" 'precision
    MSFlexGrid1.TextMatrix(I, 8) = "non" 'fait
       Next I
    I = I + 1
   
End Sub

7 réponses

JPGVB Messages postés 96 Date d'inscription mardi 29 mars 2005 Statut Membre Dernière intervention 10 mars 2011 2
20 oct. 2007 à 14:09
Bonjour, quelques suggestions pour améliorer la lisibilité:
utilise le mot WITH, déclare ton nombre de lignes en dehors de la boucle (tu évites ainsi de répeter l'opération à chaque passage, ça gagne du temps.

Private Sub CommandButton1_Click()
'Initialisation de la MSFlexGrid1
Dim I As Integer
With MSFlexGrid1
   .Cols = 9
   .Rows = 40

For I = 1 To 1
    .AddItem ""
    .TextMatrix(I, 0) = I
    .TextMatrix(I, 1) = ComboBox1.Text 'Appt
    .TextMatrix(I, 2) = ComboBox3.Text 'entreprise
    .TextMatrix(I, 3) = ComboBox4.Text 'piece
    .TextMatrix(I, 4) = ComboBox5.Text 'Action
    .TextMatrix(I, 5) = ComboBox6.Text 'type_de_travaux
    .TextMatrix(I, 6) = ComboBox7.Text 'Position
    .TextMatrix(I, 7) = "( " & TextBox7.Text & " )" 'precision
    .TextMatrix(I, 8) = "non" 'fait
Next I
End With
End Sub

Est il utile de faire une boucle puisqu'apparamment tu ne travailles que sur une ligne à la fois?
Suggestion: limiter ton nombre de lignes à celles qui sont remplies,
donc initialement  .Rows = 1 , puis à chaque click, en début de procédure
.rows=.rows+1
et à ce moment I=.rows pour te positionner sur la dernière ligne
ainsi, tu crées une nouvelle ligne que tu remplis à chaque click sur le boutton. 

A voir selon la gestion globale du projet.
Bon courage.
3
cs_Exploreur Messages postés 4822 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 14
20 oct. 2007 à 12:22
Salut,

Je viens de faire l'essai avec ton code et il fonctionne correctement sauf si tu n'as pas déclarer qu'il faut à ton msflexgrid1 9 colonnes (clique droits sur lui >> propriété....) ou lui ajouter les colonnes par code..

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
0
cs_Exploreur Messages postés 4822 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 14
20 oct. 2007 à 12:24
D'ailleurs, par code pour donner 9 colonnes à ton MSFlexGrid1 c'est :

MSFlexGrid1.Cols = 9
A+
Exploreur

 Linux a un noyau, Windows un pépin

 
0
yestaface Messages postés 15 Date d'inscription jeudi 6 septembre 2007 Statut Membre Dernière intervention 18 novembre 2007
20 oct. 2007 à 12:26
merci beaucoup pour la rapidité
mais en fait
la ligne qui suis la ligne I, soit la ligne I+1, je n'arrive pas à la remplir quand je clique une 2ème fois dessus
effectivement il fallait déclarer 9 colonnes

billybob
0

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

Posez votre question
yestaface Messages postés 15 Date d'inscription jeudi 6 septembre 2007 Statut Membre Dernière intervention 18 novembre 2007
20 oct. 2007 à 12:57
Bonjour, Rectification.
je sais quel est mon erreur
j'ai mis       FOR I = 1 to 40
je voulais en fait mettre 1 to 1
du coup ça ne remplis qu'une ligne, je suis désolé
0
yestaface Messages postés 15 Date d'inscription jeudi 6 septembre 2007 Statut Membre Dernière intervention 18 novembre 2007
20 oct. 2007 à 13:01
DU coup peut on m'aider SVP
Merci
0
yestaface Messages postés 15 Date d'inscription jeudi 6 septembre 2007 Statut Membre Dernière intervention 18 novembre 2007
20 oct. 2007 à 14:13
Merci beaucoup
0