Comment ajouter des événements aux contrôles créés à l'exécution dans Excel avec VBA
Je voudrais ajouter un Contrôle et un événement associé à l'exécution dans Excel en utilisant VBA mais je ne sais pas comment faire pour ajouter les événements.
J'ai essayé le code ci-dessous et le Bouton est créé correctement dans mon userform, mais les associés cliquez sur l'événement qui doit afficher le message hello est pas de travail.
Tous les conseils/correction serait la bienvenue.
Dim Butn As CommandButton
Set Butn = UserForm1.Controls.Add("Forms.CommandButton.1")
With Butn
.Name = "CommandButton1"
.Caption = "Click me to get the Hello Message"
.Width = 100
.Top = 10
End With
With ThisWorkbook.VBProject.VBComponents("UserForm1.CommandButton1").CodeModule
Line = .CountOfLines
.InsertLines Line + 1, "Sub CommandButton1_Click()"
.InsertLines Line + 2, "MsgBox ""Hello!"""
.InsertLines Line + 3, "End Sub"
End With
UserForm1.Show
source d'informationauteur Fred FLECHE
Vous devez vous connecter pour publier un commentaire.
Le code pour ajouter un bouton au moment de l'exécution, puis à ajouter des événements est vraiment aussi simple qu'il est difficile à trouver..je peux dire que parce que j'ai passé plus de temps sur cette perplexité et suis irrité plus que par tout autre chose que j'ai jamais programmé ..
Créer un Userform et de mettre dans le code suivant:
Maintenant U besoin d'ajouter un Module de Classe à votre Code pour le projet..s'il vous Plaît rappelez-vous son module de classe pas de Module.Et de mettre dans le Code simple suivant( Dans mon cas, le nom de la classe est Class2)-
C'est tout. Maintenant l'exécuter
DaveShaw, merci pour ce code homme!
Je l'ai utilisé pendant un togglebutton array (mettre une "vignette" taille d'image appelée trainer.jpg dans le même dossier que le fichier excel pour un togglebutton avec une photo). Dans le "clic" de l'événement de l'invocateur est également disponible (par le nom de l'objet sous forme de chaîne)
Sous la forme:
et une classe "ToggleButtonClass"
Maintenant, juste simple appel de UserForm_Initialize
Essayez ceci:
Cela modifie en permanence UserForm1 (en supposant que vous enregistrez votre classeur). Si vous vouliez un temporaire userform, puis ajouter un nouvel objet userform, au lieu de procéder à UserForm1. Vous pouvez ensuite supprimer le formulaire une fois que vous avez terminé avec elle.
Puce Pearson a quelques info sur le codage du VBE.
C'était ma solution pour ajouter un bouton de commande et le code sans l'aide de classes
Il ajoute une référence à permettre l'accès à vbide
Ajoute le bouton
Puis écrit une fonction pour gérer l'événement click dans la feuille de calcul
Je pense que le code doit être ajouté à l'objet Userform, de ne pas le bouton lui-même.
Donc quelque chose comme
En place de votre
With ThisWorkbook