[RESOLU] [VBA Excel] ajout dynamique de boutons dans une feuille excel

ajout dynamique de boutons dans une feuille excel [RESOLU] [VBA Excel] - VB/VBA/VBS - Programmation

Marsh Posté le 27-05-2008 à 09:01:49    

'jour
 
Je mets en place une macro excel qui parse un fichier texte et le met en forme dans une feuille excel ... jusqu'ici tout va bien.
Je voudrais en plus que cette macro ajoute automatiquement des boutons sur cette feuille nouvellement créée (et bien sur, qu'elle ajoute le code VBA associé à l'action "Click()" :o)
 
J'ai actuellement écrit ça:
 

Code :
  1. Dim bouton_ext As OLEObject
  2. Dim bouton_lst As OLEObject
  3. Dim recap As Workbook
  4.  
  5. [...]
  6.  
  7. recap.Sheets(1).Activate
  8. Set bouton_ext = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", Left:=700, Top:=50, Width:=150, Height:=50)
  9. Set bouton_lst = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", Left:=700, Top:=125, Width:=150, Height:=50)
  10. bouton_ext.Name = "bouton_ext"
  11. bouton_lst.Name = "bouton_lst"
  12. bouton_ext.Object.Caption = "Bouton extraction"
  13. bouton_lst.Object.Caption = "Bouton listage"
  14.      
  15. code_ext = "Sub CommandButton1_Click()" & vbCrLf & "    MsgBox(""Hello"" )" & vbCrLf & "End Sub"
  16. recap.VBProject.VBComponents.Add(1).CodeModule.InsertLines 1, code_ext


 
Alors avec ça, j'ai bien les boutons, mais quand je clique dessus, rien ne se passe :/
J'ai loupé quelque chose ? :??:
 
edit: ah oui, je précise qu'en remplaçant "CommandButton1" par "bouton_ext" dans la variable "code_ext", ça fait exactement la même chose, c'est à dire ... rien :sweat:


Message édité par wedgeant le 27-05-2008 à 13:12:47

---------------
Wedge#2487 @HS -#- PW: +∞ -#- Khaz-Modan/Boltiz @WoW
Reply

Marsh Posté le 27-05-2008 à 09:01:49   

Reply

Marsh Posté le 27-05-2008 à 11:27:44    

Tu n'as pas un bouton_ext.onaction = mafonctionquivabien ?


---------------
Instagram - Mon PVT en Australie.
Reply

Marsh Posté le 27-05-2008 à 11:43:48    

je viens de regarder ... y'a bien mais ça plante à l'exécution si je fais ça:

Code :
  1. recap.Worksheets(1).Shapes(1).OnAction = "CommandButton1_Click"
 
Citation :

Erreur d'excécution '1004'

 

Erreur définie par l'application ou par l'objet

 

[:cerveau pingouino]

 

m'ci :jap:


Message édité par wedgeant le 27-05-2008 à 11:44:00

---------------
Wedge#2487 @HS -#- PW: +∞ -#- Khaz-Modan/Boltiz @WoW
Reply

Marsh Posté le 27-05-2008 à 13:14:43    

Voila, un gentil collègue a trouvé la solution :jap:
Mon problème se situait au niveau de l'insertion du code VB du bouton, voila le code correct:
 

Code :
  1. With recap.VBProject.VBComponents(recap.Sheets(1).Name).CodeModule
  2.    nbl = .CountOfLines
  3.    .InsertLines nbl + 1, code_ext
  4. End With


---------------
Wedge#2487 @HS -#- PW: +∞ -#- Khaz-Modan/Boltiz @WoW
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed