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 :

Conserver en mémoire après l'exécution d'une macro ?


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    thermicien
    Inscrit en
    Mai 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : thermicien

    Informations forums :
    Inscription : Mai 2016
    Messages : 6
    Points : 6
    Points
    6
    Par défaut Conserver en mémoire après l'exécution d'une macro ?
    Bonjour à la communauté,

    La question est un peu dans le titre... J'ai un niveau correct en macro mais je ne parviens pas à trouver la réponse à cette question (ce n'est pas faute de taper toute de sorte de mot clé), la réponse est peut-être tout simplement "non !" d'ailleurs :

    "Est-il possible de conserver en mémoire des variables tableaux même après l'exécution d'une macro ?"

    Cela doit être possible avec un UserForm, tant que ce dernier n'est pas fermé, on peut générer des calculs à partir des variables tableaux en mémoire.

    Mais sans UserForm ? Et surtout sans l'utilisation de plages de cellules qui viendraient stocker ces informations, car l'idée est justement de charger en mémoire plusieurs pages de cellules, puis de générer des calculs à partir des variables tableaux ainsi chargées, lors d'un évènement ActiveX par exemple.

    Si je devais simplifier l'exemple à outrance cela donnerait quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub Macro1() 
    a = Range("X")
    End Sub
    Imaginons maintenant l'évènement ActiveX sur une ListBox qui déclenche la macro suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Macro2()
    cells(1,1) = a(1,1) * 100
    End Sub
    Est-il possible que Macro2 utilise "a" sans relancer Macro1 chaque fois ?
    L'idée est de gagner en rapidité de calcul en ne chargeant pas à chaque calcul tous les tableaux...

    Merci infiniment à celles et ceux qui prendront le temps de me répondre !

    Mathieu.

  2. #2
    Membre chevronné Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 419
    Points : 2 178
    Points
    2 178
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Option Explicit 'Oblige à déclarer toutes les variables!
    dim a
    Sub Macro1() 
    a = Range("X")
    End Sub
    Private Sub Macro2()
    cells(1,1) = a(1,1) * 100
    End Sub

  3. #3
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 763
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 763
    Points : 28 622
    Points
    28 622
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Je ne peux que vous conseiller la lecture de ce tutoriel Utiliser les variables en VBA Excel et tout particulièrement le chapitre V. Les niveaux de variables
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  4. #4
    Membre expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 869
    Points : 3 442
    Points
    3 442
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par phoenix61 Voir le message
    ... "Est-il possible de conserver en mémoire des variables tableaux même après l'exécution d'une macro ?"
    le réponse est oui

    Pour conserver la valeur d'une variable à la fin d'une exécution il faut la déclarer en : Static.

    Attention c'est gourmand en mémoire

    Je n'ai jamais testé avec des variables de type Tableau mai je ne vois pas pourquoi cela ne marcherai pas
    Ils ne savaient pas que c'était impossible ... du coup ils l'ont fait (Mark Twain)

    n'oubliez pas de si les messages vous aide ou sont pertinents et de mettre quand cela est !

Discussions similaires

  1. [XL-2010] Reprise d'une macro 1 après exécution d'une macro 2 appelée par la macro 1
    Par julio44 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 02/07/2014, 12h32
  2. Réponses: 2
    Dernier message: 26/08/2013, 18h25
  3. Tomcat s'arrête après l'exécution d'une applet Java
    Par gebtun dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 06/06/2013, 09h55
  4. Revenir sur la cellule sélectionné après exécution d'une macro
    Par Daniel-Gérald dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 25/02/2007, 21h50
  5. Réponses: 21
    Dernier message: 21/07/2006, 16h55

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