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 comment ca marche


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Inscrit en
    Octobre 2006
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 90
    Points : 72
    Points
    72
    Par défaut Variables globales comment ca marche
    Hello,

    Si quelqu'un a une idée sur comment réaliser ce qui suit, ses infos seront les bienvenues ...

    Donc voici mon "problème" :
    J'ai 2 feuilles Excel (nommées TRAV et BDD).
    - La feuille TRAV représente la feuille de travail
    - La feuille BDDla feuille Base de donnée

    Je fais une extraction de la feuille BDD dans différents tableaux, le code est dans un module (macro?) - J'ai créé une fonction 'Extraction'
    Les données seront utilisées dans la feuille TRAV ( c'était peut-être pas claire pour tout le monde).

    Et donc voici ce que je souhaites :
    Utiliser les différentes infos extraites (tableau par exemple) dans une autre fonction et dans différents modules (et dans différentes feuilles, TRAV par exemple).

    En espérant avoir été assez clair,
    sinon poser vos questions

    Merci les copains


  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    491
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 491
    Points : 542
    Points
    542
    Par défaut
    bonjour,

    tu peux utiliser un variant representant ton tableau

    dans un module
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    dim tableau 
    sub toto()
    dim fl  as worksheet
    set fl = worksheets("BDD")
    tableau = fl.range("a1:b100")

  3. #3
    Membre régulier
    Inscrit en
    Octobre 2006
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 90
    Points : 72
    Points
    72
    Par défaut
    J'ai une nouvelle question (ou une reformulation ...)

    - Je déclarer une variable et l'utiliser dans des fonctions (créées dans des Modules) et dans les fonctions d'une feuille Excel

    J'ai déclaré une variable 'iInt' dans une macro ('mMac') de la façon suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    dim iInt as Interger
     
    sub FoncInt ()
      iInt = 1
    end sub

    Par contre dans la fonction 'SelectionChange' de ma feuille Excel, je n'y ai pas accès.

    Merci pour vos infos

  4. #4
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    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 124
    Points : 55 905
    Points
    55 905
    Billets dans le blog
    131
    Par défaut
    Pour qu'une variable soit publique, il faut la déclarer
    en début de module standard.

    Par contre, je pense que c'est une mauvaise idée de vouloir l'utiliser à travers tout ton code ET des fonctions perso utilisées dans les feuilles de calcul.

    Pour ce qui est de l'utilisation de cette variable dans une fonction intégrée d'excel dans une feuille de calcul, je pense que c'est tout simplement impossible
    "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...
    ---------------

  5. #5
    Membre régulier
    Inscrit en
    Octobre 2006
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 90
    Points : 72
    Points
    72
    Par défaut
    Merci pour tes infos 'Pierre Fauconnier'.

    Mais pourquoi tu dis :
    je pense que c'est une mauvaise idée de vouloir l'utiliser à travers tout ton code ET des fonctions perso utilisées dans les feuilles de calcul
    Pour moi cette utilisation dépend du context.
    J'utilise ces variables sans les modifier (du style déchargement de données dans un tableau, ou variable de paramètrage pour l'affichage graphique ...)


    Merci d'avance pour tes infos complémentaires,

  6. #6
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    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 124
    Points : 55 905
    Points
    55 905
    Billets dans le blog
    131
    Par défaut
    Si tu travailles ainsi, tu rends tes fonctions personnalisées dépendantes de ton application.

    Cela peut "éventuellement" être intéressant, mais c'est, à mon avis, plus souvent un frein qu'un avantage.
    "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...
    ---------------

  7. #7
    Membre régulier
    Inscrit en
    Octobre 2006
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 90
    Points : 72
    Points
    72
    Par défaut
    Be oui, c'est le but ...
    Je veux pouvoir gérer facilement le paramétrage de la mise en page Excel, ainsi que les données (issues d'une base de donnée).

    Comme ça, mon appli peut évoluer si la gestion de la base de donnée évolue ... ou bien ma mise en page ...

    Ca permet de faire évoluer l'appli facilement.

  8. #8
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    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 124
    Points : 55 905
    Points
    55 905
    Billets dans le blog
    131
    Par défaut
    Je n'ai pas dit qu'il ne fallait pas le faire, mais j'attire simplement l'attention sur le fait que c'est parfois difficile à gérer.

    Par exemple, si tu ne gères pas tes erreurs ou si tu as une erreur non récupérable, tu risques de perdre tes variables publiques.

    Tandis que si tu utilises une feuille, éventuellement cachée, voire très cachée, avec des valeurs dans les cellules, tu ne perds pas les infos qui s'y trouvent, même après un plantage VBA...

    Mais à chacun sa manière. Si la tienne te convient, continue ainsi

    Cordialement.
    "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...
    ---------------

  9. #9
    Membre régulier
    Inscrit en
    Octobre 2006
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 90
    Points : 72
    Points
    72
    Par défaut
    Tes remarques/infos sont très intéressantes,
    Merci pour toutes ces infos,

    A plus Pierro

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

Discussions similaires

  1. Réponses: 15
    Dernier message: 22/06/2007, 09h01
  2. [sql] comment utiliser une variable global
    Par imedg dans le forum Oracle
    Réponses: 21
    Dernier message: 02/05/2006, 15h21
  3. [c#] Variable globale ? comment faire ?
    Par afaverot dans le forum Windows Forms
    Réponses: 1
    Dernier message: 03/02/2006, 14h15
  4. Comment déclarer une variable globale
    Par davkick dans le forum C
    Réponses: 13
    Dernier message: 20/05/2005, 18h50
  5. XSL:variable...comment ça marche
    Par fidififouille dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 18/06/2004, 23h12

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