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 :

variables globales vba excel


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 85
    Par défaut variables globales vba excel
    bonjours à tous,

    J'ai un petit trou de memoire (ou peu etre que je ne les jamais su), je voudrai savoir si une variable globale (dim indice as integer) peut garder en memoire le resultat d'une affectation lors d'un traitement.
    Je voudrai savoir si indice peut garder un entier "à vie" si vous voyez se que je veu dire.

    Merci à celui ou ceux qui vont répondre.

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    258
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 258
    Par défaut
    Salut

    Je ne pense pas que ca soit possible puisque le fait de relancer une macro remet les variables à "zéro"

    PAr contre si tu veux qu'une variable soit utilisée par différentes macros, il faut les déclarer en dehors des macros, en tete de module

    Par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Option explicit
    dim x as integer
     
    sub test1 ()
    x=x+1
    end sub
     
    Sub test 2()
    x=x+3
    end sub
    x est automatiquement déclaré dans les 2 fonctions et garde sa valeur en passant de l'une à l'autre
    C'est pratique lorsqu'on a des macros tres longues que l'on peut alors fractionner tout en gardant les varibles

    Mais pour les garder les variables lorsque la macro est achevée, il faut les noter dans une cellule d'excel.

    @+

  3. #3
    Membre confirmé
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 85
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Option explicit
    dim x as integer
    ok j'ai compri , mais ques que je met dans Option explicit

  4. #4
    Membre émérite
    Inscrit en
    Avril 2007
    Messages
    667
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2007
    Messages : 667
    Par défaut
    Bonjour,
    En fait on ne met rien "dans" Option Explicit
    Option explicit et les variables globales (ie visibles et utilisables par toutes les macros du module) sont places au meme endroit (en debut de module, avant la premiere macro). Option Explicit est la pour obliger a declarer toutes les variables ce qui permet de faire du code propre et de ne pas faire de fautes de frappes.

    Resume:
    -si tu veux que toutes les macros d'un meme module voient x tu mets en debut de module
    -si tu veux que toutes les macros contenues dans tous les modules et userform de ton fichier voient x, au meme endroit:
    -dans tous les cas, en debut de tous les modules il faut ajouter
    edit:
    Je voudrai savoir si indice peut garder un entier "à vie" si vous voyez se que je veu dire.
    Tant que le fichier est ouvert oui (avec une variable globale), sinon il faut enregistrer dans une cellule et recharger la valeur a l'ouverture.

  5. #5
    Membre confirmé
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 85
    Par défaut
    merci a vous 2 .
    c exactement se qui me falé;
    @+ sur une autre discution

  6. #6
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    74
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 74
    Par défaut Initialisation variables Globale
    bonjour,

    Je débute en VBA excel, et je voudrais savoir s'il est possible de déclarer une variabale en Globale et de l'initialiser?
    J'utilise une variable Cp_as = 1006 dans plusieurs fonctions, et à défaut de la redéfinir à chaque fois, je voudrais la déclarer et l'initialiser en global. Est ce possible? Sinon, que puis je faire?

    Merci

  7. #7
    Membre émérite
    Inscrit en
    Avril 2007
    Messages
    667
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2007
    Messages : 667
    Par défaut
    Bonjour
    Tout d'abord, normalement pour poser une question tu devrais creer un autre sujet (meme si c'est lie, je te l'accorde).

    Pour repondre a ta question, cela depend
    Si dans toutes tes procedures Cp_as = 1006 et cette valeur ne change jamais alors c'est une constante et tu peux la declarer en debut de module comme
    Si tu veux qu'en debut de chaque procedure Cp_as = 1006 puis puisse changer alors
    1/pas besoin de variable globale
    2/tu declares en constante et tu utilises une variable locale pour chaque procedure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    sub truc()
    dim MaVariable as integer
    Mavariable = Cp_as
    Si jamais tu as besoin de precisions, cree un autre sujet

  8. #8
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    74
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 74
    Par défaut
    Merci...
    C'est juste ce dont j'avais besoin.
    J'éssayais avec "public" et autre mais ça passait pas.

    Thanks

  9. #9
    Membre très actif Avatar de Aizen64
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    563
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 563
    Par défaut
    Il me semble qu'il est possible de garder la dernière valeur d'une variable même après avoir arrêté la macro.

    Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Static VariableExemple As Intger
    Ça marche ça nan ?

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

Discussions similaires

  1. déclaration de variable globale dans excel
    Par pierreTarek dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/07/2012, 16h52
  2. variable objet VBA excel
    Par mikeduff dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 28/11/2009, 18h00
  3. Variable Objet VBA excel
    Par blade15 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 09/07/2009, 10h57
  4. variables pour VBA excel
    Par ericdev67 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 11/09/2008, 21h35
  5. variables globales vba access
    Par binouzzz19 dans le forum VBA Access
    Réponses: 2
    Dernier message: 13/09/2007, 09h05

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