Bouton d'option dynamiques sur feuille excel

jerjerrod

XLDnaute Nouveau
Bonjour à tous,

Je cherche à créer des series de boutons options sur une feuille excel, mais créés dynamiquement par du code VBA.
J'ai réussi avec la commande :

Graph2D.OLEObjects.Add(ClassType:="Forms.OptionButton.1", Link:=False, _
DisplayAsIcon:=False, _
Left:=gauche, Top:=haut, Width:=13, Height:=13).Select

Mais je voudrais en plus que ces boutons aient un événement "Sur Click", ce que je n'ai pas encore réussi à faire.
(Je n'ai pas utilisé les bouton option excel car j'en ai plusieurs séries indépendantes)

Donc est-ce que je peux m'en sortir avec ces boutons d'option VBA, ou y a-t-il une autre solution?

Avec mes remerciements les plus chaleureux,
Jerjerrod
 

MichelXld

XLDnaute Barbatruc
Re : Bouton d'option dynamiques sur feuille excel

bonsoir

tu peux par exemple utiliser un module de classe pour gérer les evenements Click qur les OptionButton


Code:
Sub recupationOptionButtonsDansClasse()
Dim Obj As OLEObject
Dim Cl As Classe1
    
Set Collect = New Collection

For Each Obj In Feuil1.OLEObjects 'boucle sur les objets de la Feuil1
    'verifie s'il s'agit d'un OptionButton    
    If TypeOf Obj.Object Is MSForms.OptionButton Then 
        Set Cl = New Classe1
        Set Cl.optBtn = Obj.Object
        Collect.Add Cl
    End If
Next Obj

End Sub


'--------------------------------------
'dans un module standard
Option Explicit

Public Collect As Collection
'--------------------------------------


'--------------------------------------
'dans un module de classe nommé "Classe1"
'
Option Explicit

Public WithEvents optBtn As MSForms.OptionButton

'exemple pour gerer l'evenement clic sur les objets type OptionButton dans la Feuil1
Private Sub optBtn_Click()
'cet exemple affiche le nom de l'objet cliqué et sa valeur
MsgBox optBtn.Name & "/" & optBtn.Value
End Sub
'--------------------------------------



bonne soiree
Ce lien n'existe plus
 
Dernière édition:

lapix

XLDnaute Occasionnel
Re : Bouton d'option dynamiques sur feuille excel

Bonsoir

J'avais touvé il y a quelques temps un petit bout de code exemple :

sub Create_Buttons

dim Code$

Set oOLE = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", _
Link:=False, DisplayAsIcon:=False, Left:=340, Top:=30, Width:=100, Height:=30)

with oOle
.Name = "CommandButton1"
.Object.Caption = "Global Top25"
end with

Code = "Sub CommandButton1_Click()" & vbCrLf
Code = Code & "MsgBox ""Coucou XLD""" & vbCrLf
Code = Code & "End Sub"

With ActiveWorkbook.VBProject.VBComponents(NewSheet.Name).CodeModule
.InsertLines + 1, Code
End With

'ou 2 eme méthode
'With ActiveWorkbook.VBProject.VBComponents(NewSheet.Name).CodeModule
.InsertLines .CreateEventProc("Click", "Commandbutton1") + 1,"Lenomdelamacroàéxécuter"
'end with

endsub


Je ne crois pas l'avoir jamais executé donc je ne garanti rien

Bonne soiree
 

Discussions similaires

Statistiques des forums

Discussions
312 305
Messages
2 087 084
Membres
103 459
dernier inscrit
Arnocal