argentin7
Messages postés125Date d'inscriptionvendredi 10 août 2007StatutMembreDernière intervention14 juillet 2008
-
22 oct. 2007 à 13:51
argentin7
Messages postés125Date d'inscriptionvendredi 10 août 2007StatutMembreDernière intervention14 juillet 2008
-
23 oct. 2007 à 13:54
bonjour communauté VBFRANCE
j'ai une ligne model (line(0)) et je veux savoir est ce que c est possible de creer d'autre ligne (line(1),,,,,,,line(n)) a partir de cette ligne.
j ai deja cherché sur le forum,j'ai trouvé un cas similaire pour les forms mais ca n'a pas marché
precisement je veux generer la ligne enfant lorsque je clique sur un command (boutton)
donc j ai autant d'enfant que de clique
et merci d'avance
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 22 oct. 2007 à 15:11
Salut,
Il faudrait être un peu explicite lorsque tu dit "ca n'a pas marché" - Est ce qu'il y a une erreur
- Est ce que rien ne se passe
- Quel est le code que tu as utiliser en fin de compte.
REgarde ce petit exemple.
Option Explicit
'Dans un formulaire
'ajoute un COntrol Line appelle le TestLigne
'Met 0 dans sa propriété index.
'et regarde ce que fait ce code
Private Sub Form_Load()
Dim i As Integer
For i = 1 To 10
Call Load(TestLigne(i))
With TestLigne(i)
.X1 = TestLigne(0).X1
.X2 = TestLigne(0).X2
.Y1 = TestLigne(0).Y1 + (i * 45)
.Y2 = TestLigne(0).Y2 + (i * 45)
.Visible = True
End With
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 23 oct. 2007 à 08:09
Re,
Moi je dirais qu'il fonctionne (d'ailleurs as tu une erreur), mais par défaut il me semble que les ojbets créés sont INVISIBLES d'ou mon .Visible = TRUE dans le code.
Pour t'en convaincre teste ceci:
Private Sub Form_Load()
Dim i As Integer
For i = 1 To 10 Call Load(TestLigne(i))
With TestLigne(i)
.X1 = TestLigne(0).X1
.X2 = TestLigne( 0 ).X2
.Y1 = TestLigne(0).Y1 + (i * 45)
.Y2 = TestLigne(0).Y2 + (i * 45)
Call Msgbox(.Visible) End With
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 23 oct. 2007 à 13:33
Re,
Oui d'accord mais as tu lu ce que je te met plus haut?
Par défaut les ligne créées sont INVISIBLES, le code que tu met dans ton post précédent fonctionne parfaitement cela crée bien les lignes mais il faut ajouter .Visible ) True (comme dans mon premier code exemple).
Kristof_Koder
Messages postés918Date d'inscriptionvendredi 3 août 2007StatutMembreDernière intervention27 octobre 200810 22 oct. 2007 à 13:56
Ce code fonctionne ...
Load objline(objline.Count)
... à condition de ne pas utiliser le mot 'line' comme nom de controle !! C'est un mot réservé du langage VB6 ... et tu ne peux donc pas nommer une variable ou un objet avec !!
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 22 oct. 2007 à 23:45
Parce que ton J est dans la procédure et n'est pas Static. Donc, chaque fois que tu cliques le bouton, J = 0 puis est incrémenté à 1 et TestLigne(1) existe déjà.
Si tu veux conserver ton compteur J dans la procédure, mets-le Static
ex: Static J As Integer
Sinon, déclare-le en entête de code de la feuille ou dans un module.