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éinitialisation propre des variables publiques [XL-2016]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Inscrit en
    Août 2009
    Messages
    817
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 817
    Points : 314
    Points
    314
    Par défaut Réinitialisation propre des variables publiques
    Bonjour,

    Existe-t-il une manip pour réinitialiser les variables publiques suaf à les traiter une par une?

    J'ai coutume de déclarer mes vairables comme public dans un module "appelant"

    Puis de là j'enchaine le userform de saisie utilisateur
    puis j'appelle successivement la ou les routines en fonction des besoins.

    Or les variables publiques ne sont pas réinitialisées après le end sub et le unload du userform.
    en testant curieusement après une deuxième exécution les variables sont vidées.

    Du coup j'ai mis un avant le de ma procédure et ça marche, mais est-ce que ça ne risque pas de créer d'autres soucis de sortir ainsi ?
    Merci
    Denis

  2. #2
    Membre émérite Avatar de Zekraoui_Jakani
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    1 670
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 670
    Points : 2 489
    Points
    2 489
    Par défaut
    Vous pouvez écrire une sub (ou fonction) de réinitialisation que vous appellerez avant "end sub" et le "unload du userform"

  3. #3
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Salut.

    Pour moi, il faut se passer des variables publiques. A part pour la manipulation d'un ruban personnalisé dynamique et un ou deux autres cas très rares et très spécifiques, je ne vois pas l'intérêt de travailler avec des variables publiques. Les procédures qui les utilisent
    • sont difficilement testables puisque dépendantes d'une situation externe à leur utilisation (et leur codage);
    • ne peuvent être employées ailleurs, limitant ainsi le réemploi et la générisation du code;
    • sont délicates à maintenir et à faire évoluer
    • ...



    Cela dit, l'instruction End stoppe le code en réinitialisant les variables publiques. C'est donc une deuxième porte de sortie d'une proc alors que "mes" règles de bonne programmation n'en autorisent qu'une. De plus, End réinitialise toutes les variables publiques, ce qui n'est pas forcément toujours le but souhaité.

    Une bonne architecture utilisant des procédures/fonctions paramétrées et des appels corrects de userform me semblerait être une meilleure approche, qui ne nécessiterait pas ce traitement radical
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  4. #4
    Membre averti
    Inscrit en
    Août 2009
    Messages
    817
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 817
    Points : 314
    Points
    314
    Par défaut
    Merci
    Pour ta réponse Zekraoui, oui je peux faire une procédure, je me demandais s'il existait une comande globale.


    Pierre, je suis toujours intéressé de m'améliorer.

    Mais comme je découpe mes codes en modules de traitement, je me suis retrouvé à devoir déclarer des variables plusieurs fois par exemple la feuille.
    J'ai trouvé que Public répondait bien à mon besoin.
    J'ai déjà cherché des tutos sur la portée des variables, mais n'ai pas trouvé à ce jour quelquechose de suffisamment à compréhensible pour moi.

    à suivre

    et merci.
    Denis

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 25/02/2016, 16h46
  2. [Débutant] Comment déclarer des variables publiques pour tous les formulaires
    Par Claude_Azoulai dans le forum C#
    Réponses: 5
    Dernier message: 09/05/2013, 17h50
  3. Façon la plus propre de retenir des variables
    Par Lolie11 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 04/06/2007, 16h27
  4. [FLASH MX2004] Réinitialiser des variables ...
    Par vbcasimir dans le forum Flash
    Réponses: 2
    Dernier message: 21/02/2006, 17h32
  5. Réponses: 4
    Dernier message: 18/07/2002, 13h32

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