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 :

Réorganiser un code VBA en différent module de classe


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 12
    Points : 6
    Points
    6
    Par défaut Réorganiser un code VBA en différent module de classe
    Bonjour,
    Je viens de reprendre un application VBA d'une personne que je ne connais pas. L'application est relié a un excel et possède 1 user form qui est l'application en elle-même c'est a dire toute l'interface ainsi que les fonctionnalités. Dans le code de ce user form on retrouve donc enfaite le code de toute les interface ainsi que toute les fonction utiles pour faire fonctionner l'application (formule de calcul, mise en page, command button ect..) la casi totalité de l'application est dans le code d'un user form . Il y a donc 2700 ligne d'affilé dans un seul fichier. Mon idée était de le restructurer afin de pouvoir le diviser en différentes modules de classe qui s'appellerait entre elles et pouvoir optimiser certaines fonctions. Je voudrais donc savoir comment je pourrais créer des modules de classe qui contiendrait du coup de le code du userform de l'application mais de manière mieux structurées et plus lisible/optimisée mais en gardant des liens avec l'userform afin qu'il reste fonctionnel . Sachant que la boite ou je travail n'utilise que VBA et toute la suite office donc pas de visual studio ect.... Je sais pas si c'est possible, ou si je me suis bien fait comprendre . Merci d'avance pour vos réponses

  2. #2
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    rien dans ton explication n'impose l'utilisation de modules de classe. Tu ne parles pas plutôt de déporter des procédures et fonctions vers des modules standards ?

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    Humm oui possible ce serait surtout pour réaménager le code car la c'est 2700 d' affilé c'est unbuvable j'aimerais bien découpé tout ça en plusieurs partie quoi

  4. #4
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Il faut que tu analyses chaque procédure pour en "extraire" des briques de traitement fondamentales

    chaque brique deviendra une procédure isolée qui sera chargée de réaliser l'action voulue
    pareil pour les fonctions (les calculs récurrents)

    tu arriveras à la fin avec des modules standards contenant toutes tes briques fondamentales.
    au sein de ton userform, tu n'auras plus qu'à appeler tes briques selon tes besoins.

    De plus, en cas de maintenant/déboggage/évolution ... ce sera beaucoup plus simple.

  5. #5
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut
    Bonjour,

    bref un code LEGO™ !
    Bien souvent un UserForm n'est pas vraiment utile sauf s'il est utilisé comme une simple interface et encore …

    Pour cette restructuration, déjà bien analyser le but, le besoin, avant de comparer avec l'analyse fonctionnelle du code.

    ___________________________________________________________________________________________________________
    Je suis Paris, Egypte, Nigeria, New-York, Mogadicio, Barcelone, London, Manchester, Stockholm, Istanbul, Berlin, Nice, Bruxelles, Charlie, …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    Merci pour vos conseil L'analyse de chaque procédure est déjà faites du coup !

  7. #7
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut

    Bien !

    Pour alléger ou optimiser le code, comparer déjà cette analyse avec les fonctionnalités d'Excel,
    surtout si le code comporte des boucles bien longues à l'exécution …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

Discussions similaires

  1. Exécuter le code VBA d'un module dans un sous formulaire
    Par keketteboy dans le forum VBA Access
    Réponses: 2
    Dernier message: 04/06/2008, 11h41
  2. Test de code VBA sur différentes versions d'Excel
    Par Fala fala dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/01/2008, 11h33
  3. VBA - ListBox améliorée - modules de classe
    Par House MD dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 01/12/2007, 18h20
  4. [VBA-Excel] les modules de Classe
    Par EvaristeGaloisBis dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/07/2007, 11h21
  5. [VBA][EXCEL]Goto a travers différent module
    Par Ania dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 19/12/2005, 09h32

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