IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

Ajouter dynamiquement des Events à une Feuille via un module de classe.


Sujet :

Excel

  1. #1
    Membre éclairé
    Inscrit en
    Janvier 2003
    Messages
    604
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 604
    Par défaut Ajouter dynamiquement des Events à une Feuille via un module de classe.
    Bonjour,

    Je crée des nouvelle feuilles dans un Classeur Excel et je souhaite qu'elles fassent appel à une procédure sur Double Clique.
    J'ai crée un module de classe avec un WithEvents dans lequel j'ai spécifié ma procédure, mais ensuite je n'arrive pas à instancier cette nouvelle feuille créee.

    Voilà le code du module de Classe GpeFeuilles.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Public WithEvents mesFeuilles As Worksheet
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
        Action_DE.Action
    End Sub
    Ensuite je veux créer ma feuille :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim mesFeuilles() As New GpeFeuilles
     ...
     Nbfeuille = Worksheets.Count
     ReDim Preserve mesFeuilles(Nbfeuille + 1)
     Set ActiveSheet = MyWorkbook.mesFeuilles(Nbfeuille + 1)
    mais ca plante en ligne 5 avec ce message.

    Propriété ou méthode non géré par cet objet
    Est ce que vous sauriez comment faire ?
    D'avance merci.

  2. #2
    Membre chevronné Avatar de Bear the french
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations forums :
    Inscription : Mai 2012
    Messages : 352
    Par défaut
    Bonjour,

    Je ne code pas en VBA mais j'ai une piste (en espérant que la logique soit la même dans tous les langages de programmation )...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim mesFeuilles() As New GpeFeuilles
     ...
     Nbfeuille = Worksheets.Count
     ReDim Preserve mesFeuilles(Nbfeuille + 1)
     Set ActiveSheet = MyWorkbook.mesFeuilles(Nbfeuille + 1)
    Dans ta syntaxe, MyWorkbook est le nom d'une classe et mesFeuilles est une propriété ou une méthode liée à cette classe... cela parait étrange et à mon avis à revoir (ou à m'expliquer)

    Bertrand

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2008
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 203
    Par défaut
    Salut

    ActiveSheet est une propriété en lecture:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox "Le nom de ma feuille est " & ActiveSheet.Name
    Pour sélectionner une feuille il faut plutôt faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("MaFeuille").Activate
    Pourquoi un module de classe? Tu crées une nouvelle classe?
    Il n'y en a pas besoin à mon avis, et un module simple doit suffire...

    PS: ce message devrait être sous VBA

  4. #4
    Membre éclairé
    Inscrit en
    Janvier 2003
    Messages
    604
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 604
    Par défaut
    Bonjour,
    En fait ce post devait se trouver dans la partie Développement/Macro Excel.
    Vous trouverez les reponses dans cette le lien ci-dessous.

    http://www.developpez.net/forums/d12...module-classe/

    On a vraiment besoin d'utiliser un module de Classe pour faire ce genre de choses. C'est comme faire une implémentation d'interface en Java.

    Merci de vos idées.

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2008
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 203
    Par défaut
    Si le fil a changé, il vaudrait mieux clôturer celui-ci en faisant "Résolu" et même "Délestage" ce qui permet à un modérateur de le supprimer...

Discussions similaires

  1. [XL-2003] Ajouter dynamiquement des Events à une Feuille via un module de classe.
    Par comme de bien entendu dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 08/06/2012, 18h06
  2. [débutant] ajouter des contrôles à une feuille par code
    Par Claude_Azoulai dans le forum VB.NET
    Réponses: 3
    Dernier message: 03/04/2010, 18h51
  3. Réponses: 3
    Dernier message: 27/03/2008, 14h41
  4. ajouter dynamiquement des items dans un popup menu
    Par Malone dans le forum Composants VCL
    Réponses: 7
    Dernier message: 23/08/2005, 16h08
  5. [VB.NET] Manipuler une feuille via un module
    Par dinbougre dans le forum Windows Forms
    Réponses: 8
    Dernier message: 13/01/2005, 17h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo