Bonjour
J'essaie de créer dynamiquement sur une forme un bouton (ça, ça marche), et le code de l'événement Click associé, et ça ça ne marche pas.
J'ai une erreur sur l'utilisation de CreateEventProc. ( 'Erreur d'exécution '57017' Gestionnaire d'événements non valide).
Quelqu'un peut-il m'expliquer pourquoi ça ne marche pas
Grand merci d'avance
Voilà le code complet de la proc:
Public Sub AjouteCtrl()
Dim CtrlName As String, MyCode As String, CodeMacro As String, TextLoc As Long
'Tentative de créer un bouton TestButton sur la form "FormJeu" et de
'créer la Sub TestButton_Click
CtrlName = "TestButton"
CodeMacro = " msgbox coucou"
'Création du bouton - OK, ça marche
With FormJeu
.Controls.Add "Forms.CommandButton.1", CtrlName
With .Controls(CtrlName)
.Caption = CtrlName
.Visible = True
.Locked = False
End With
End With
'Création de la sub associée à l'événement Click - ça ne marche pas -
With Application.VBE.ActiveVBProject.VBComponents("FormJeu").CodeModule
TextLoc = .CreateEventProc("Click", CtrlName) 'Erreur d'exécution '57017' Gestionnaire d'événements non valide
.InsertLines TextLoc + 1, CodeMacro
End With
'Alors que le code suivant fonctionne (presque)
MyCode = "Private Sub TestButton_Click()" & vbCrLf & CodeMacro & vbCrLf & "End Sub"
With Application.VBE.ActiveVBProject.VBComponents("FormJeu")
.CodeModule.AddFromString MyCode 'ça, ça marche - La proc est ajoutée, mais le bouton ne réagit pas quand on click dessus
End With
FormJeu.Show
End Sub
J'essaie de créer dynamiquement sur une forme un bouton (ça, ça marche), et le code de l'événement Click associé, et ça ça ne marche pas.
J'ai une erreur sur l'utilisation de CreateEventProc. ( 'Erreur d'exécution '57017' Gestionnaire d'événements non valide).
Quelqu'un peut-il m'expliquer pourquoi ça ne marche pas
Grand merci d'avance
Voilà le code complet de la proc:
Public Sub AjouteCtrl()
Dim CtrlName As String, MyCode As String, CodeMacro As String, TextLoc As Long
'Tentative de créer un bouton TestButton sur la form "FormJeu" et de
'créer la Sub TestButton_Click
CtrlName = "TestButton"
CodeMacro = " msgbox coucou"
'Création du bouton - OK, ça marche
With FormJeu
.Controls.Add "Forms.CommandButton.1", CtrlName
With .Controls(CtrlName)
.Caption = CtrlName
.Visible = True
.Locked = False
End With
End With
'Création de la sub associée à l'événement Click - ça ne marche pas -
With Application.VBE.ActiveVBProject.VBComponents("FormJeu").CodeModule
TextLoc = .CreateEventProc("Click", CtrlName) 'Erreur d'exécution '57017' Gestionnaire d'événements non valide
.InsertLines TextLoc + 1, CodeMacro
End With
'Alors que le code suivant fonctionne (presque)
MyCode = "Private Sub TestButton_Click()" & vbCrLf & CodeMacro & vbCrLf & "End Sub"
With Application.VBE.ActiveVBProject.VBComponents("FormJeu")
.CodeModule.AddFromString MyCode 'ça, ça marche - La proc est ajoutée, mais le bouton ne réagit pas quand on click dessus
End With
FormJeu.Show
End Sub