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

VBA Discussion :

UserForm: persistance en mémoire après Unload


Sujet :

VBA

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Médecin
    Inscrit en
    Octobre 2015
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Médecin
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2015
    Messages : 1
    Points : 1
    Points
    1
    Par défaut UserForm: persistance en mémoire après Unload
    Bonjour,

    J'apprends le VBA depuis quelques mois, en grande partie grâce aux tutos trouvés ici, et dans le but d'automatiser des tâches sous Excel.
    Depuis peu j'utilise des UserForms.

    Pour passer des informations à la procédure ou à la fonction qui appelle le UserForm, j'utilise la propriété Tag du UserForm.

    Ce qui m'a étonné dans le tuto que j'ai trouvé sur les UserForm, c'est qu'il était conseillé de le détruire dès l'appui sur les boutons de validation ou d'annulation. Et pourtant, après ça, la propriété monUserForm.Tag est toujours accessible pour la procédure appelante. Ca m'a étonné, mais je suis programmeur débutant, et le nettoyage de la mémoire n'est pas le premier de mes soucis (j'ai tort, je sais), donc j'ai laissé tomber.

    Là où ça m'embête, c'est que dans mes différents tests en cours d'écriture, j'ai pu accéder à UserForm.Tag alors que normalement plus aucun code ne devait continuer à s'exécuter. Donc ça pourrait interférer avec les procédures lancées ultérieurement, en donnant une valeur à une variable qui ne devrait pas encore en avoir.

    Du coup, je me rends compte qu'on peut régler le problème avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set monUserForm = Nothing
    Là, UserForm.Tag semble vide, en tout cas ça renvoie un champ vide dans la console de débug.

    Pourtant sur les différents tutos que j'ai lus sur UserForm, aucun ne dit qu'il faut détruire l'objet en le mettant à Nothing. Et même, sur le tuto VBA venu d'ici, il est dit qu'il ne faut pas finaliser, vu qu'on ne crée rien, c'est Excel qui s'en charge.

    Alors, quelle est la bonne pratique?
    Est-ce que ma question a un lien avec la portée de mes procédures (je précise que les événements au sein du UserForm sont déclarées en Private, les procédures appelantes en Public)?

    Merci pour vos réponses!

  2. #2
    En attente de confirmation mail
    Homme Profil pro
    Gestion comptable - Spécialiste Excel, Vba, - Débutant MySql, Javascript, Python, Php
    Inscrit en
    Mars 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Gestion comptable - Spécialiste Excel, Vba, - Débutant MySql, Javascript, Python, Php

    Informations forums :
    Inscription : Mars 2010
    Messages : 48
    Points : 52
    Points
    52
    Par défaut
    Bonjour

    Unload monUserForm


    ca efface la référence du userform dans la mémoire contrairement à :

    monUserForm.hide

    je crois ou

    monUserForm.hide = true

    je ne sais plus lequel des 2.

    Mais instancier un userform avec le mot cle set n'est pas fréquent et je ne sais pas si ça produit l'effet voulu

    Cordialement

    Pascal

Discussions similaires

  1. [XL-2003] Garder CheckBox coché après unload d'userform
    Par Invité(e) dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 07/12/2009, 15h20
  2. Vider la mémoire après utilisation d'une feuille excel
    Par snooopy007 dans le forum Access
    Réponses: 15
    Dernier message: 19/07/2006, 20h11
  3. libération de la mémoire après traitement ?
    Par isachat666 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 07/12/2005, 19h29
  4. [Cookies] include non persistant en mémoire
    Par ouioui2000 dans le forum Langage
    Réponses: 1
    Dernier message: 18/10/2005, 15h07
  5. [Planification de tâches] Persister l'état après un reboot
    Par Wookai dans le forum Général Java
    Réponses: 3
    Dernier message: 12/08/2005, 16h00

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