Piramyd Head27
Messages postés31Date d'inscriptionmercredi 19 septembre 2007StatutMembreDernière intervention28 mars 2014
-
2 sept. 2010 à 02:39
Profil bloqué -
5 sept. 2010 à 01:44
Bonjour !
Je suis en train de programmer un logiciel de gestion de commandes pour mon entreprise et je dois y ajouter un FlexGrid comme tableur pour les feuilles de soumissions...bref, je n'ai pas vraiment encore touché au Grid de VB...j'ai cherché le forum..en vain, voila donc mon petit problème:
Je veux remplir mon FlexGrid avec plusieur entrées Textbox, 4 en fait, mais je ne parviens pas encore à ajouter les données dans la rangée 2 !! Ridicule, je sais, donc j'ai essayer quelque chose du genre:
...seulement pour tester, mais plutôt que de sauter à la deuxième rangée lors d'une deuxième saisie...cela réécris dans la même !! Et là...je pige pas...ou je suis con et aveugle !!!
En tout cas merci d'avance et si vous voulez plus de détail dites-le moi !
Salut
dans Command3_Click tu commences toujours à la rangée 2
donc l'ajout se fait toujours sur la même rangée
tout en haut de ta feuille tu mets : Private ligne as long ' ligne courante Grid
Dans le Form_Load de ta feuille tu ajoutes : ligne = 2
Private Sub Command3_Click()
With flx
.TextMatrix(ligne, 0) = ""
.TextMatrix(ligne, 1) = Text1.Text
.TextMatrix(ligne, 2) = ""
.TextMatrix(ligne, 3) = Text2.Text
.TextMatrix(ligne, 4) = ""
ligne = ligne + 1 ' pour ligne suivante la prochaine fois
.Rows = .Rows + 1
End With
End sub
ainsi à chaque ajout de ligne la grille se remplira à la ligne suivante
Autre chose : nommes tes contrôles (Command3 n'est pas très parlant : Ajoutligne serait mieux)
Dernière chose : pour une Grid on parle de lignes et de colonnes ( les rangées on ne connait pas)
La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.
Piramyd Head27
Messages postés31Date d'inscriptionmercredi 19 septembre 2007StatutMembreDernière intervention28 mars 2014 2 sept. 2010 à 23:28
Bonjour et merci de m'avoir répondu !!
J'ai bien fait ce que tu m'as dit et ca ressemblais a ce que j'avais déja essayer la semaine dernière sauf que moi j'avais mis Private i As Integer mais ca me donnais sans cesse : Subscript out of range. Et avec ce que tu m'as conseiller ca me donne la même chose !
Je vais coller le code complet tu pourras p-e me dire de quoi il en ressort car moi je ne connaissais pas encore cette erreur. Ha, et pour les controle c'est normal...c'est ma facon de procéder...tant que ca marche pas je laisse les noms d'origines...et pour rangée bah...mauvaise traduction de Row !!!
Private ligne As Long
Private Sub Command1_Click()
Prix.Visible = True
End Sub
Private Sub Command2_Click()
Moul.Show
End Sub
Private Sub Command3_Click()
With flx
.TextMatrix(ligne, 0) = ""
.TextMatrix(ligne, 1) = Text1.Text
.TextMatrix(ligne, 2) = ""
.TextMatrix(ligne, 3) = Text2.Text
.TextMatrix(ligne, 4) = ""
ligne = ligne + 1
.Rows = .Rows + 1
End With
End Sub
'Propriétés de la Form
Private Sub form_load()
ligne = 2
'Taille de la Form
Me.Height = 10305
Me.Width = 14565
Piramyd Head27
Messages postés31Date d'inscriptionmercredi 19 septembre 2007StatutMembreDernière intervention28 mars 2014 2 sept. 2010 à 23:48
Bon encore moi...
Je viens de me rendre compte de mon (notre) erreur...en fait dans FormLoad je dois mettre
ligne =1, ligne=2 est impossible car il n'y a qu'une seule ligne visible lorse que le Flex se charge, donc je n'ai plus Subscript out of range....affaire classé !!
Mais pour ce qui est de l'ajout d'une ligne bah le problème c'est que justement à chaque fois que je fais Command3_Click ca n'ajoute qu'une ligne vide et les données remplace celles de la première ligne ???
"et pour les contrôles c'est normal...c'est ma façon de procéder...tant que ca marche pas je laisse les noms d'origines."
Les noms d'origine ne traduisent pas l'utilité et le rôle d'un contrôle.Là c'est toi qui voit mais si tu as sur ta feuille un nombre important de contrôles du même type c'est plus clair de leur donner un nom en rapport avec leur rôle dans le programme : une étiquette qui affiche le prix d'un article sera nommée Prix et non Label1, une autre qui affiche l'article sera nommé Designation et non Label2, etc....
La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.