cs_vousvous
Messages postés35Date d'inscriptionmardi 7 septembre 2004StatutMembreDernière intervention24 août 2005
-
7 oct. 2004 à 14:43
TarikDemna
Messages postés1Date d'inscriptiondimanche 19 mars 2006StatutMembreDernière intervention 6 avril 2006
-
6 avril 2006 à 21:20
salut !
j'ai réussi à créer des commandbuttons dynamiquement sous excel vba mais je ne sais pas comment leur attribuer un évènement. Comment faut-il faire ?
jrivet
Messages postés7393Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 7 oct. 2004 à 14:54
Salut,
tu peux essayer en creant les boutons comme element d une ,matrice de bouton, ainsi tu n aura qu un seul evenement click pour tout tes boutons et apres tu traite le click suivant l indice du bouton dans la matrice (ca evite de creer du code dynamiquement...)
@+
Julien
-----------------------------------------------------------
:big) Essai ca sinon on trouvera autre chose ;)
-----------------------------------------------------------
cs_vousvous
Messages postés35Date d'inscriptionmardi 7 septembre 2004StatutMembreDernière intervention24 août 2005 7 oct. 2004 à 15:20
en fait, je viens d'y penser... mais je t'ai pas donné toutes les infos :
j'ai un textbox où l'utilisateur entre un nombre et en fonction de ce nombre creer n commandbutton. ces commandbutton sont creer sur l'évènement "change".
Pour cela, j'ai déclarer un tableau dynamique de commandbutton. et après je fais
for i = 1 to nb.value
set machin = ....controls.add(...)
next i
et ces commandbutton doivent tous avoir un évènement "click" qui comporte une fonction. La même fonction pour tous les commandbutton à un paramètre pret.
Donc, je crois que ta solution est bonne mais je sais pas comment on fait pour traiter l'évènement "click" en fonction de l'indice de la matrice.
Merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
jrivet
Messages postés7393Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 7 oct. 2004 à 15:34
re,
Tu peux essayer de faire un control au minimum (invisible pour l utilisateur) qui est contenu dans une matrice d'un element, pour ca tu as juste a mettre la propriete index du bouton a 0
rien que la deja si tu double click sur ton bouton ce code aparait:
Private Sub Command1_Click(Index As Integer)
End Sub
Can tu cliquera sur le bouton index vaudra 0
si tous appelle la meme fonction alors il y a pas de prob. mais ce " parametre pret" qui change, en coi il difere suivant l index du bouton ?
@+
Julien
-----------------------------------------------------------
:big) Essai ca sinon on trouvera autre chose ;)
-----------------------------------------------------------
cs_vousvous
Messages postés35Date d'inscriptionmardi 7 septembre 2004StatutMembreDernière intervention24 août 2005 7 oct. 2004 à 15:41
j'ai pas propriété index car je suis sous vba excel.... :(
en appuyant sur le boutton, l'utilisateur doit choisir une coleur et l'a fixé en couleur de fond d'une image. Cette image a le même indice que le commandbutton.
J'ai n commandbutton qui doivent servir à fixer la couleur de fond de n image...
jrivet
Messages postés7393Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 7 oct. 2004 à 15:49
Re,
Effectivement il n y a pas d index en VBA :(
Pas de bol va falloir que tu ecrive le code dynamiquement , c est la merde autant te prevenir...
@+
Julien
-----------------------------------------------------------
:big) Essai ca sinon on trouvera autre chose ;)
-----------------------------------------------------------
TarikDemna
Messages postés1Date d'inscriptiondimanche 19 mars 2006StatutMembreDernière intervention 6 avril 2006 6 avril 2006 à 21:20
J'essai de fournir des évènements click à des boutons que je crée dynamiquement lorsque je clique sur un bouton command3, malheureusement je n'y arrive pas. Je fais ca car le nombre de bouton varie en fonction du nombre de fichiers textes contenus dans un dossier. Si les boutons sont créés ce qui est déja bien par contre rien ne se passe lorsque je clique dessus, voici mon code:
Private Sub command3_Click()
'Dim monbouton As Variant
Dim i As Integer
Dim n As Integer
Dim mypath As String
Dim myfile As String
Dim Temps As Single
Dim t() As String
Dim strFullPath As String
Dim x As String
Dim alpha As Integer
Top = 2880
Do While myfile <> ""
i = i + 1
strFullPath = mypath & "" & myfile
'On ouvre des fichiers
Open strFullPath For Input As #1
n = 0
While Not EOF(1)
Input #1, x
n = n + 1
ReDim Preserve t(1 To n)
t(n) = x
Wend
Close #1
Temps = CInt(t(4)) / CInt(t(2))
'Je fais un tableau de boutons
ReDim Preserve monbouton(1 To i)
Set monbouton(i) = Me.Controls.Add("VB.CommandButton", "NomDubouton" & CStr(i), Me)
monbouton(i).Visible = True
monbouton(i).Left = 8640
monbouton(i).Top = Top
monbouton(i).Caption = myfile
monbouton(i).Height = Temps * 800 / 24
Top = Top + Temps * 800 / 24
monbouton(i).Width = 1500