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

Voici le code dans mon module :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 !