Attribuer sur-cliquez sur une fonction VBA pour dynamiquement un bouton créé sur Excel Userform
Je suis la création de boutons de façon dynamique sur un userform Excel avec le code suivant:
With Me.CurrentFrame.Controls.Add("Forms.CommandButton.1")
.Caption = "XYZ"
.name = "AButton"
.Font.Bold = True
.ForeColor = &HFF&
... blah blah blah
End With
J'aimerais attribuer une fonction à exécuter lorsque ces boutons sont cliqué, mais je ne peux pas trouver un moyen simple de faire cela car il n'y a pas de propriété dans le cadre de la touche elle-même.
Est-il un moyen de le faire à l'aide de la idiome? Dois-je aller à ce sujet toute chose d'une manière différente?
OriginalL'auteur notnot | 2009-02-19
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin pour créer dynamiquement du code /des gestionnaires d'événement pour chaque bouton.
Il prendre un peu de faire - voir ici: http://navpadexcel.blogspot.com/2006/11/httpwwwcpearsoncomexcelvbehtm.html
Une meilleure façon pourrait être de créer un tas de boutons sur la forme (autant que vous pensez que vous aurez besoin) à l'avance. Créer le code de gestionnaire d'événements. Faire d'eux tous, masqué au départ.
Puis quand votre formulaire s'ouvre, vous pouvez modifier dynamiquement le bouton de légendes, de les rendre visibles et de les déplacer. Le code d'événement que vous avez créé va d'abord être liée à l'activation des boutons comme prévu.
OriginalL'auteur DJ.
Pour ajouter un événement de contrôle de manière dynamique sous Excel; vous devez d'abord ajouter l'événement(s) dans un module de classe. Pour mon exemple, je vais ajouter un module de classe nommé clsTEST avec un événement, btn_click()
Comme vous pouvez le voir, la seule chose que cela va faire est de définir la légende sur le bouton pour le nombre de fois où vous avez cliqué.
Ensuite, dans le code du formulaire, saisissez les éléments suivants:
Lorsque vous activez la forme, il va créer un bouton. chaque fois que vous cliquez sur le bouton de la légende va changer.
C'est le droit. _Click() événements n'accepte pas les paramètres. Ce que vous pouvez essayer est de mettre une autre variable privée à l'intérieur de la classe et de vous attribuer la légende de la première, puis la configuration de votre événement pour le gestionnaire.
OriginalL'auteur 598Bubblehead
Le code ci-dessous devrait être de travailler
OriginalL'auteur Alex
OriginalL'auteur Priyanka
J'ai été à la recherche à ce sujet. Semble que vous pouvez exécuter une macro à l'aide de la propriété onClick:
Puis créer une macro de ce nom qui exécute la fonction désirée.
C'est mon hack autour de cette jusqu'à ce que je trouve quelque chose de mieux.
OriginalL'auteur