évènement dynamique pour commandbutton excel vba

cs_vousvous Messages postés 35 Date d'inscription mardi 7 septembre 2004 Statut Membre Dernière intervention 24 août 2005 - 7 oct. 2004 à 14:43
TarikDemna Messages postés 1 Date d'inscription dimanche 19 mars 2006 Statut Membre Derniè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 ?

Merci beaucoup

9 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
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 ;)
-----------------------------------------------------------
0
cs_vousvous Messages postés 35 Date d'inscription mardi 7 septembre 2004 Statut Membre Dernière intervention 24 août 2005
7 oct. 2004 à 15:10
merci d'avoir répondu !

Cette idée m'interesse mais j'ai jamais utilisé de matrices... Quel est son principe et son utilisation ?

Merci encore de ta réponse !
0
cs_vousvous Messages postés 35 Date d'inscription mardi 7 septembre 2004 Statut Membre Dernière intervention 24 août 2005
7 oct. 2004 à 15:11
oups, je vais faire une petite recherche avant ....
0
cs_vousvous Messages postés 35 Date d'inscription mardi 7 septembre 2004 Statut Membre Dernière intervention 24 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
0

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

Posez votre question
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
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 ;)
-----------------------------------------------------------
0
cs_vousvous Messages postés 35 Date d'inscription mardi 7 septembre 2004 Statut Membre Dernière intervention 24 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...
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
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 ;)
-----------------------------------------------------------
0
cs_vousvous Messages postés 35 Date d'inscription mardi 7 septembre 2004 Statut Membre Dernière intervention 24 août 2005
7 oct. 2004 à 15:52
merci lol...
0
TarikDemna Messages postés 1 Date d'inscription dimanche 19 mars 2006 Statut Membre Derniè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





mypath = "c:\Production"
myfile = Dir$(mypath & "\*.txt", vbDirectory)

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


myfile = Dir$ 'pour prendre le fichier suivant

Loop

End Sub
0
Rejoignez-nous