Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

code dynamique sous vba excel

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
 
E

Eric C

Guest
Bonjour le forum
Bonjour fred1234

Le code fonctionne très bien. Il te faut le placer dans un module puis insérer avant l'appel : UserForm1. Teste sous XL97.

@ ++ Eric C
 
S

salim

Guest
Bonjour fred1234, Eric C, et le Forum

fred1234 je tourne sur Excel 2002 XP familial et chez moi le code tourne super bien je comprend pas, question bête tu as bien un UserForm1 et une TextBox1 sinon je vois pas désolé.

Salim
 
E

Eric C

Guest
Re le forum
Re bonjour fred1234, bonjour Salim (Plus de Gif ...)

J'ai testé ce midi chez moi XL 2000, tout comme Salim, cela fonctionne sans problème.
@ ++ Eric C
 

Discussions similaires

Réponses
3
Affichages
166
Réponses
7
Affichages
539
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…