Lié un module de classe à un Button OleObjects
Bonjour,
Il s'agit de mon premier post sur ce super site !
Je suis néophyte dans le domaine et je suis en quête comme beaucoup de réponse afin de pouvoir avancer.
Je suis sur un projet nommée "Facturateur" qui permettra à terme de gérer des factures.
J'aimerais utiliser le module de classe afin de*créer des*"Bouton personnalisés" dans une feuille et pas un formulaire.
A ce stade, le code créé bien les boutons mais ne lie pas le code du module de classe et je ne trouve pas où ce situe mon erreur ou mes erreurs:aie:
Voici le code dans mon module :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
Option Explicit
Public collect As Collection
Sub créa_pack()
'Création Variable
Dim Obj As OLEObject
Dim Cl As Classe1
Dim i As Integer, Y As Integer
Dim largeur As Single, hauteur As Single, PH As Long, PG As Long
Dim destcell As Range, Val As String, cell As Range
i = 1
'boucle création bouton
For Each cell In Range("PackId[ID]")
'destination bouton
Set destcell = Worksheets("Facturation").Cells(7, 6 + i)
'val est le nom du pack
Val = cell.Offset(0, 1).Value
'taille cellule
largeur = Columns(destcell.Column).Width
PG = Columns(destcell.Column).Left
hauteur = Rows(destcell.Row).Height
PH = Rows(destcell.Row).Top
Set Obj = Worksheets("Facturation").OLEObjects.Add("Forms.CommandButton.1", Left:=PG, Top:=PH, Width:=largeur, Height:=hauteur)
With Obj
.Name = "Pack" & " " & Val
.Object.Caption = "Pack" & " " & Val
End With
'ajout de l'objet dans la classe (c'est ici que le probleme ce situe*surement)
Set collect = New Collection
Set Cl = New Classe1
Set Cl.ChkBx = Obj.Object
collect.Add Cl
i = i + 1
Next cell
'Worksheets("Facturation").Protect
End Sub |
Mon code de module de classe est le suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
Option Explicit
Public WithEvents ChkBx As MSForms.CommandButton
Sub ChkBx_Click()
Range("A1").Select
MsgBox "yo"
End Sub |
Je l'avoue je fais tout en autodidacte et je suis pas trop doué.
Mais en comprenant mon erreur, ça me permettra de m'améliorer.
Je ne sais pas si je procède de la*bonne manière mais je suis prêt à en découdre pour avancer.
Merci beaucoup !:D