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

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

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