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 :

Utilisation des variables public [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    1 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 288
    Par défaut Utilisation des variables public
    Bonjour,

    je pensai avoir compris l'utilisation des variables PUBLIC mais il semble qu'il me manque un maillon

    Je voudrai simplifier l'accès au chemin d'accès à mes classeurs Excel en utilisant la fonction PUBLIC

    1) j'ai défini en un endroit unique le chemin d'accès dans le premier classeur de mon enchainement (dans la cellule "H1" de la feuille paramètre "PARAM")

    2) dans le classeur suivant il y également une feuille PARAM et la cellule H1 de cette feuille est renseignée par Excel par une équivalence avec la feuille du premier classeur (=PARAM!H1)
    pas de problème

    3) j'ai défini dans ce classeur dans un module
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public chemin As String
    pour pouvoir utiliser la variable "chemin" dans mes macros

    4) Pour donner la valeur à la variable, dans ThisWorkbook open j'ai écrit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    chemin = Sheets("PARAM").Range("H1").Value
    J'ai bien la valeur de mon chemin dans la variable en fin de Thisworkbook open

    Mais quand j'utilise la variable dans une macro elle a une valeur = ""

    Que manque-t-il ?

  2. #2
    Membre confirmé
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Octobre 2012
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2012
    Messages : 78
    Par défaut
    Je pense que vous devez définir la valeur de vos variables dans un module.
    Par exemple dans le module dans lequel vous avez déclaré votre variable, vous mettez ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub MesVariables()
    chemin = Sheets("PARAM").Range("H1").Value
    end Sub
    et vous faite appel à MesVariables, que ce soit dans le Thisworkbook.open ou ailleurs pour attribuer la valeur publique à chemin

  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
    13 169
    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 : 13 169
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    je pensai avoir compris l'utilisation des variables PUBLIC mais il semble qu'il me manque un maillon
    Rien de tel que la lecture d'un bon tutoriel sur le sujet Utiliser les variables en VBA Excel
    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 éprouvé
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    1 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 288
    Par défaut
    Merci à vous 2, je suis en train de regarder,

    en fait pour ne pas avoir à trop changer mon code j'aurai voulu remplacer dans le module où je déclare mes variables PUBLIC:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public Const pathServeur As String = "C:\Répertoire"
    par quelque chose comme cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Public chemin As String
    Public chemin = Sheets("Param").Range("H1").Value
    mais cela ne va pas et je ne sais même pas si c'est possible car je ne voie pas ça dans les docs

  5. #5
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 169
    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 : 13 169
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Evite d'utiliser "mais cela ne va pas" car cela ne veux strictement rien dire. Soit tu as un message d'erreur et tu donnes son numéro et le texte qui l'accompagne , soit la variable est vide et tu le signales

    De deux choses l'une, soit tu choisis d'utiliser une constante publique alors c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public Const pathServeur As String = "C:\Répertoire"
    soit tu choisis une variable publique et dans ce cas c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Public chemin As String
    Sub Init()
     chemin = Sheets("Param").Range("H1").Value
    End Sub
    Et donc au démarrage, tu dois lancer la procédure Init. Init étant un nom choisi au hasard
    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

  6. #6
    Membre éprouvé
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    1 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 288
    Par défaut
    J'ai bien fait cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Public pathServeur As String
     
    Sub chemin()
    pathServeur = Sheets("Param").Range("H1").Value
    End Sub
    et dans ThisWorkbook open
    en sortie de ThisworkBook pathServeur à la bonne valeur de H1 de Param

    Quand j'utilise ensuite dans le même classeur dans une macro :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pathFact = pathServeur & "\" & fich12 & ".xlsm"
    pathServeur à la valeur ""

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

Discussions similaires

  1. [XL-2007] utilisation des variables public
    Par bigboy dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/08/2009, 22h36
  2. Utiliser des variables d'une BDD
    Par Ragnarok_1er dans le forum Access
    Réponses: 3
    Dernier message: 25/01/2006, 08h32
  3. utilisation des variables global dans tout le projet
    Par EYENGA Joël dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 12/01/2006, 10h55
  4. [MFC] utilisation des variables associées
    Par Grey dans le forum MFC
    Réponses: 2
    Dernier message: 18/11/2005, 14h00
  5. Utiliser des variables d'environnements
    Par Xam335 dans le forum C++Builder
    Réponses: 2
    Dernier message: 14/08/2004, 14h15

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