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

Macros et VBA Excel Discussion :

VBA Module de classe


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2007
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 30
    Points : 19
    Points
    19
    Par défaut VBA Module de classe
    Bonjour,
    Je voudrais savoir s'il est possible d'utiliser le principe des macros complémentaires (pour déporter des modules standards) aux modules de classe, afin de déporter leurs définitions. Je souhaiterais que tous mes classeurs Excel utilisent la m^me définition de classe.
    Si quelqu'un a une piste, je l'en remercies par avance:

  2. #2
    Membre éclairé

    Profil pro
    Inscrit en
    Mai 2007
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 514
    Points : 824
    Points
    824
    Par défaut
    Bonsoir,

    Pour chaque module de classe de ta macro complémentaire:

    - Afficher la fenetre propriété, définir Instancing à PublicNotCreatable.

    - Prévoir une fonction publique dans un module standard renvoyant une instance de la classe. Exemple si ta classe s'appelle Classe1:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Function GetClasse1() As Classe1
        Set GetClasse1 = New Classe1
    End Function
    Pour chaque classeur utilisant les classes de ta macro complémentaire il faut ajouter une référence vers celle-ci (VBE>Outils>Références).

    - Tu peux ainsi déclarer des variables du type de tes modules en dehors de la macro complémentaire.
    - Par contre pour créer les objets tu dois impérativement passer par les fonctions publiques de la macro complémentaire. Ex:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim MaClasse As Classe1
     
    Sub Test()
        'Set MaClasse = New Classe1 'Ne fonctionne pas
        Set MaClasse = GetClasse1 'Fonctionne    
    End Sub
    Cordialement,

    Tirex28/

  3. #3
    Membre à l'essai
    Inscrit en
    Novembre 2007
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 30
    Points : 19
    Points
    19
    Par défaut
    Merci Tirex28 pour ta réponse. Impeccable et très clair
    Pourrais tu me préciser (si tu sais) quelle est la différence entre ajouter une macro complémentaire via Outil\Macro Complémentaire (Excel) ou en faisant référence à la macro via Outils\Référence (Editeur Vba)


  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    C'est "un peu" la même chose sauf que les dll sont en langage compilé tandis que les xla sont en langage interprétable. Regarde ici la différence, c'est assez bien expliqué.
    Juste pour indication si tu ne le savais pas... tu peux déclarer tes xla par le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.AddIns.Add("C:\LeRep\LeFichier.xla").Installed = True
    A toutes fins utiles
    Bonne soirée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Vba module de classe
    Par Yann19 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/12/2013, 17h34
  2. [VBA] Module de classe et évènement
    Par Caroline1 dans le forum Access
    Réponses: 9
    Dernier message: 20/03/2013, 23h23
  3. [VBA-Excel] les modules de Classe
    Par EvaristeGaloisBis dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/07/2007, 11h21
  4. [VBA]Import modules de classe dans Access 2003
    Par pht33 dans le forum VBA Access
    Réponses: 1
    Dernier message: 24/04/2007, 15h45
  5. Réponses: 8
    Dernier message: 22/02/2006, 15h09

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