Remplir flexgrid sur la ligne qui suit [Résolu]

Messages postés
15
Date d'inscription
jeudi 6 septembre 2007
Statut
Membre
Dernière intervention
18 novembre 2007
- - Dernière réponse : 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
Afficher la suite 

7 réponses

Meilleure réponse
Messages postés
96
Date d'inscription
mardi 29 mars 2005
Statut
Membre
Dernière intervention
10 mars 2011
2
3
Merci
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.

Dire « Merci » 3

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

Codes Sources 129 internautes nous ont dit merci ce mois-ci

Commenter la réponse de JPGVB
Messages postés
4824
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
11
0
Merci
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

 
Commenter la réponse de cs_Exploreur
Messages postés
4824
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
11
0
Merci
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

 
Commenter la réponse de cs_Exploreur
Messages postés
15
Date d'inscription
jeudi 6 septembre 2007
Statut
Membre
Dernière intervention
18 novembre 2007
0
Merci
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
Commenter la réponse de yestaface
Messages postés
15
Date d'inscription
jeudi 6 septembre 2007
Statut
Membre
Dernière intervention
18 novembre 2007
0
Merci
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é
Commenter la réponse de yestaface
Messages postés
15
Date d'inscription
jeudi 6 septembre 2007
Statut
Membre
Dernière intervention
18 novembre 2007
0
Merci
DU coup peut on m'aider SVP
Merci
Commenter la réponse de yestaface
Messages postés
15
Date d'inscription
jeudi 6 septembre 2007
Statut
Membre
Dernière intervention
18 novembre 2007
0
Merci
Merci beaucoup
Commenter la réponse de yestaface