Problème module de classe

mécano41

XLDnaute Accro
Bonjour à tous,

Quelqu'un peut-il me dire s'il y a une particularité pour les modules de classe avec les feuilles de calculs?

Je cherche à détecter quelle feuille, parmi 14 ou plus, a été activée afin de traiter son cas particulier mais l'événement _Activate ne se déclenche pas...ou bien ce n'est pas prévu pour fonctionner ainsi (pas trouvé d'exemple) ou bien j'ai fait une énormité quelque part...

Ensuite, après déclenchement de l'événement, a-t-on besoin de la partie Initialisation dans la mesure où l'on dispose de l'instruction ActiveSheet pour déterminer la feuille ensuite?

Module ClasseFeuilles

Code:
Option Explicit

Public WithEvents GroupeFeuilles As Worksheet

Private Sub GroupeFeuilles_Activate()
Call Initialisation
Call TraiteFeuilles
End Sub

Module1

Code:
Option Explicit

Dim Feuilles() As New ClasseFeuilles

Private Sub Initialisation()
Dim NbFeuilles As Long
Dim Feuil As Worksheet
For Each Feuil In Workbook.Worksheets
    If TypeName(Feuil) = "Worksheet" Then
        NbFeuilles = NbFeuilles + 1
        ReDim Preserve Feuilles(1 To NbFeuilles)
        Set Feuilles(NbFeuilles).GroupeFeuilles = Feuil
    End If
Next Feuil
End Sub


Private Sub TraiteFeuilles()
'A faire
End Sub

Cordialement
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : Problème module de classe

Bonjour,


comprends pas trop ton souci.... ceci, placé dans le module "thisworkbook" ne suffirait il pas ?
Code:
Option Explicit
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
MsgBox Sh.Name
End Sub

sinon pour initialiser la classe avec les feuilles, perso je pencherais pour le faire directement dans l'événement "open" de "thisworkbook"

bonne journée
@+
 

mécano41

XLDnaute Accro
Re : Problème module de classe

Bonjour Pierrot,

Merci pour ta réponse. J'ai mis un module de classe car ensuite, je dois savoir quelle cellule a été sélectionnée dans la feuille active (afin de faire ensuite le traitement d'une liste Combobox - OleObject - de cette feuille). J'ai mis l'initialisation dans ThisWorkbook et maintenant, elle s'exécute bien mais la suite ne va pas...

Cordialement
 

Pièces jointes

  • Essai Classe Feuilles1.xlsm
    18.4 KB · Affichages: 33

mécano41

XLDnaute Accro
Re : Problème module de classe

Merci !

Je venais de me rendre compte que j'avais recopié par erreur "Dim Feuilles() As New ClasseFeuilles" dans le Sub au lieu de le mettre en tête et que j'avais mis les procédures en Private! Ton message me confirme tout cela et c'est parfait! Encore merci...Tu verras le sujet traité dans un autre fil car ce n'était pas directement pour moi...alors merci pour lui!

Cordialement
 

job75

XLDnaute Barbatruc
Re : Problème module de classe

Bonjour mécano41, Pierrot,

En retard mais je poste quand même.

Noter que la macro W_Activate du Module de classe ne s'exécute pas quand on ajoute une feuille de calcul.

A+
 

Pièces jointes

  • Classe de feuilles de calcul(1).xls
    37 KB · Affichages: 39

Pierrot93

XLDnaute Barbatruc
Re : Problème module de classe

Re,
Bonjour Job

Noter que la macro W_Activate du Module de classe ne s'exécute pas quand on ajoute une feuille de calcul.

remarque tu peux rajouter ceci dans le module "thisworkbook" :
Code:
Private Sub Workbook_NewSheet(ByVal Sh As Object)
ReDim Preserve W(1 To UBound(W) + 1)
Set W(UBound(W)).W = Sh
End Sub
 

Pierrot93

XLDnaute Barbatruc
Re : Problème module de classe

Re,

avec un test surr le type de feuille ajoutée :
Code:
Private Sub Workbook_NewSheet(ByVal Sh As Object)
If Not Sh.Type = xlWorksheet Then Exit Sub
ReDim Preserve W(1 To UBound(W) + 1)
Set W(UBound(W)).W = Sh
End Sub
 

mécano41

XLDnaute Accro
Re : Problème module de classe

Re,

Voici l'endroit où est située votre collaboration efficace ; si vous avez un peu de temps pour y jeter un oeil...

c'est : Pb de compatibilité xlsx entre version 2010 et 2007 !

Il s'agit de remplacer la fonction de validation des données par liste qui n'existait pas dans les anciennes versions.

https://www.excel-downloads.com/threads/pb-de-compatibilite-xlsx-entre-version-2010-et-2007.209418/

au message 11

Merci encore à tous les deux, et si vous avez mieux, ne vous gênez pas ... :)

Cordialement

EDIT modif lien qui ne fonctionnait pas
 
Dernière édition:

Discussions similaires

Réponses
29
Affichages
1 K

Statistiques des forums

Discussions
312 694
Messages
2 091 040
Membres
104 744
dernier inscrit
paporchet