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 :

[VBA-E]Variable globale?


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    932
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 932
    Par défaut [VBA-E]Variable globale?
    coucou,

    j'tuilise une variable 5 ou 6 fois dans différentes Sub et je me demandais si on ne pouvait pas ne la déclarer qu'une fois?

  2. #2
    Membre éclairé Avatar de Lucas42
    Inscrit en
    Janvier 2006
    Messages
    301
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 301
    Par défaut
    salut , tu utilise tes variable ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    sub PROG1()
    Dim TAVARIABLE as Integer
    ...
    End Sub
    Si oui , cela ne sert à rien de les rendre globale car elle sont simplement utilisé lors de l'appelle de PROG1

    Si par contre , tes PROG font changer la valeur d'une variable , alors dans ce cas tu peux utiliser une VARIABLE GLOBALE

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    932
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 932
    Par défaut
    Alors,

    oui je les utilise comme dans ton exemple et non mes prog ne moidifie pas la valeur de cette variable. Mais je voudrais la render globale quand meme.

    Voilà la situation :

    j'ai une fonction qui calcul le numéro de la semaine en cours et donc pour ne pas avoir à calculer ce N° dans chaque Sub, je voudrais par exemple déclarer en global :

    - une variable qui contient la date du jour (c'est un parametre de la fonction qui me calcule le numero de la semaine en cours)
    - une variable "NumSemaine" qui contient le résultat de la fonction.

    donc pour l'instant je declare les variable comme ton exemple elle ne sont pas modifié mais pourtant je trouve qu'il serait interessant de les declarer en global pour ne pas avoir à appeler la fonction plusieurs fois !

  4. #4
    Membre éclairé Avatar de Lucas42
    Inscrit en
    Janvier 2006
    Messages
    301
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 301
    Par défaut
    Pour rendre une variable Globale il te suffit de remplacer lors de ta definition de ta variable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim TAVARIABLE As Integer
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public TAVARIABLE As Integer
    Si tu as definit cette TAVARIABLE sur une Form1 et que tu souhaite l'utilisée sur une autre Form2 , sache qu'il faut y faire appelle de la maniére suivante
    Si ce n'est pas le cas, si tu travail sur une seule Form , alors aucun souci

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    932
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 932
    Par défaut
    Ouep ca marche mais j'arrive pas à faire sque je veux

    j'aurais voulu faire ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Public Test As Date
    Public Resultat As Integer
    Test = DateSerial(Year(Now()), Month(Now()), Day(Now()))
    Resultat = NumeroSemaine(Test) - 1
    la declaration c'est ok mais apres jme doutais bien qu'il fallait etre dans une procedure pour affecter des valeurs.

    enfin si par exemple je creer une procedure dans la quelle je met que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Test = DateSerial(Year(Now()), Month(Now()), Day(Now()))
    Resultat = NumeroSemaine(Test) - 1
    que je lance à l'ouverture, les variable auront la bonne valeur? lors de cahcune de leur utilisation ? (sachant que je ne les modifie pas)

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    932
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 932
    Par défaut
    Bon,

    pour le moment je fais comme ca j'initialise dans thisworkbook, si y'a une meilleure solution ou si ma solution peut presenter des erreur ca m'interesse de le savoir

    en tout cas merci dejà

  7. #7
    Membre éclairé Avatar de Lucas42
    Inscrit en
    Janvier 2006
    Messages
    301
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 301
    Par défaut
    et bien tout depend si ton programme tourne en boucle ou pas , dans quel fonction as tu fais la demande
    Test = DateSerial(Year(Now()), Month(Now()), Day(Now()))
    Resultat = NumeroSemaine(Test) - 1
    ???

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

Discussions similaires

  1. [AC-2007] Problème de module, VBA et variable globale
    Par Kaptin dans le forum VBA Access
    Réponses: 2
    Dernier message: 25/07/2012, 14h40
  2. [VBA-E] Variables globales sur tout un projet
    Par a.dequidt dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 15/10/2007, 10h48
  3. [VBA-A] Redéclarer un variable global
    Par sabes dans le forum VBA Access
    Réponses: 4
    Dernier message: 09/06/2006, 18h00
  4. [VBA-E] pb variables globales reinitialisées...
    Par borisa dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 07/03/2006, 14h57
  5. variable globale + fenetre de debogage vba
    Par papy_tergnier dans le forum Access
    Réponses: 5
    Dernier message: 08/09/2005, 11h32

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