F
fred1234
Guest
salut,
merci si vous pouvez m'aider car je cherche depuis plusieurs jours....
j'ai un textbox dans un userform et quand l'utilisateur rentre un nombre N, il apparait automatiquement N commandbutton (sur l'évènement "change"). Mais je voudrais affecter un code à ces bouttons à l'évènement "click". J'ai fait une recherche sur le forum et j'ai trouvé ceci qui aurait pu m'aider mais ça marche pas ....
Le code utilisé est le suivant :
Public Sub AfficherUSF()
Dim USF
Dim Ctrl As CommandButton
Dim Code As String
'Créer le nouveau bouton
Set USF = ThisWorkbook.VBProject.VBComponents("UserForm1")
Set Ctrl = USF.Designer.Controls.Add("forms.CommandButton.1")
With Ctrl
.Name = "OKButton"
.Caption = "OK"
End With
' Créer le code associé au nouveau bouton
Code = "Private Sub OKButton_Click()" & vbCrLf
Code = Code & "MsgBox ""Coucou XLD""" & vbCrLf
Code = Code & "End Sub"
With USF.CodeModule
.InsertLines .CountOfLines + 1, Code
End With
'Affiche le USF
VBA.UserForms.Add(USF.Name).Show
'Supprime le bouton créé dynamiquement
USF.Designer.Controls.Remove "OKButton"
With USF.CodeModule
.deleteLines 2, 3
End With
End Sub
J'ai juste fait un copier coller dans un module mais à l'éxécution, il me dit que plein de choses n'existent pas ex: codemodule, designer, insertlines etc...
Merci si vous connaissez la réponse à ce pb ou alors proposez une autre méthode
merci si vous pouvez m'aider car je cherche depuis plusieurs jours....
j'ai un textbox dans un userform et quand l'utilisateur rentre un nombre N, il apparait automatiquement N commandbutton (sur l'évènement "change"). Mais je voudrais affecter un code à ces bouttons à l'évènement "click". J'ai fait une recherche sur le forum et j'ai trouvé ceci qui aurait pu m'aider mais ça marche pas ....
Le code utilisé est le suivant :
Public Sub AfficherUSF()
Dim USF
Dim Ctrl As CommandButton
Dim Code As String
'Créer le nouveau bouton
Set USF = ThisWorkbook.VBProject.VBComponents("UserForm1")
Set Ctrl = USF.Designer.Controls.Add("forms.CommandButton.1")
With Ctrl
.Name = "OKButton"
.Caption = "OK"
End With
' Créer le code associé au nouveau bouton
Code = "Private Sub OKButton_Click()" & vbCrLf
Code = Code & "MsgBox ""Coucou XLD""" & vbCrLf
Code = Code & "End Sub"
With USF.CodeModule
.InsertLines .CountOfLines + 1, Code
End With
'Affiche le USF
VBA.UserForms.Add(USF.Name).Show
'Supprime le bouton créé dynamiquement
USF.Designer.Controls.Remove "OKButton"
With USF.CodeModule
.deleteLines 2, 3
End With
End Sub
J'ai juste fait un copier coller dans un module mais à l'éxécution, il me dit que plein de choses n'existent pas ex: codemodule, designer, insertlines etc...
Merci si vous connaissez la réponse à ce pb ou alors proposez une autre méthode