XL 2019 Module de classe et checkbox

ThierryP

XLDnaute Occasionnel
Bonjour le forum,

Après quelques recherches sur le Net à ce sujet, je me rends compte que mes modestes connaissances et le peu de neurones qui me restent ne me permettent pas d'appliquer les solutions ou pistes que j'ai pu trouver..... La plupart s'adressant à un USF !
J'ai donc sur ma feuille un certain nombre de checkbox (dans le fichier complet il y a plusieurs onglets), et je voudrais déclencher une macro quand on coche un checkbox, basiquement écrire la date dans la cellule correspondante et pour certaines effectuer des trucs un peu plus complexes.

Donc j'ai bien vu qu'il me fallait utiliser un module de classe pour ne pas avoir à écrire des dizaines de fois Checkbox99_Click mais je n'arrive pas à vraiment comprendre la mise en oeuvre ou à transposer ce que j'ai trouvé pour les USF.

Si une bonne âme veut bien me donner quelques informations, je suis preneur !

Merci d'avance,
 

Pièces jointes

  • Test.xlsm
    53.5 KB · Affichages: 9
Solution
Bonjour
c'est assez simple en fait selon la methode patricktoulon qui consite a tout faire dans le module classe

dans le module thisworkbook et plus précisément dans l'event open
VB:
Dim cl As New classCheck
Private Sub Workbook_Open()
    cl.classage
End Sub
et dans un module classe nommé "classCheck"
VB:
Public WithEvents check As msforms.CheckBox
Dim cls() As New classCheck
Public Function classage()
    Dim Ctl, A&
    For Each Ctl In Feuil1.OLEObjects
        If Ctl.TopLeftCell.Column = 3 Then
            A = A + 1: ReDim Preserve cls(1 To A): Set cls(A).check = Ctl.Object
        End If
    Next
End Function
Private Sub Check_Click()
    MsgBox "tu fait ce que tu veux avec le checkbox " & check.Name

End Sub

ThierryP

XLDnaute Occasionnel
Bonjour Patrick,

J'avais bien ajouté le screenupdating=false, mais ça ne change rien, le fichier appelé prend le focus, du coup l'event click du checkbox s'exécute sur le fichier appelé.

Si je fais du pas à pas, je vois que ensuite je ne passe pas dans l'event click du module de classe si je reclique. Il faut que je relance la fonction classage (via Sheet_Activate) pour que cela refonctionne (cf post #12).

Du coup, comment garder le focus sur le fichier appelant, ou alors comment faire pour que ta macro classage enregistre une fois pour toutes les données ?

Merci d'avance de ton retour !
 

Discussions similaires

Réponses
29
Affichages
1 K

Statistiques des forums

Discussions
313 198
Messages
2 096 142
Membres
106 505
dernier inscrit
ngomez