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

Excel Discussion :

Récupérer des valeurs publiques dans workbook


Sujet :

Excel

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 21
    Points : 8
    Points
    8
    Par défaut Récupérer des valeurs publiques dans workbook
    Bonjour à toutes et tous,

    J'ai besoin de connaitre la date dans le code d'un userform. Pour ce faire, j'ai déclaré dans l'onglet général de ThisWorkbook en Public la variable Le comme une date. Dans Workbook_Open, j'ai activé une feuille particulière puis Initialiser Le avec la date courante Now()!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Workbook_Open()
        Worksheets("RECAP").Activate
        Le = Now()
    End Sub
    Mon problème réside dans le contenu de Le qui reste désespérément à "00:00:00"?!...

    Merci de votre aide.

  2. #2
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    A mon avis, ton problème, c'est que toutes les variables disparaissent quand une macro se termine, y compris si elles sont public. On ne peut pas durablement stocker une valeur dans une variable.

    Que t'affiche la fenêtre d'exécution si tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Workbook_Open()
        Worksheets("RECAP").Activate
        Le = Now()
        debug.print "Le = ";Le
    End Sub
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 21
    Points : 8
    Points
    8
    Par défaut Re: Menhir
    Citation Envoyé par Menhir Voir le message
    A mon avis, ton problème, c'est que toutes les variables disparaissent quand une macro se termine, y compris si elles sont public. On ne peut pas durablement stocker une valeur dans une variable.

    Que t'affiche la fenêtre d'exécution si tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Workbook_Open()
        Worksheets("RECAP").Activate
        Le = Now()
        debug.print "Le = ";Le
    End Sub
    Bonjour Menhir,
    Je ne vois rien apparaître! De plus ce type de code fonctionnait en Excel 4.0! ça date un peu je sais...
    Mais comme Excel 2013 n' exécute pas systématiquement les "=ACTIVER("Feuil_x")" je suis dans l'obligation de réécrire une macro en 4.0 de 900 lignes!
    J'ai pour l'instant contourné le problème en venant "Lire" une cellule nommée Aujourdhui sur la feuille RECAP de départ.
    Mon propos était de comprendre pourquoi, lorsque je faisais appel au contenu d'une variable public définie à la "racine" du workbook, celle-ci revenait à 0!

  4. #4
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par fifo78370 Voir le message
    Je ne vois rien apparaître!
    Est-ce que ta fenêtre d'exécution est ouverte ? (Ctrl+G dans l'éditeur VBA)

    De plus ce type de code fonctionnait en Excel 4.0!
    Il y avait déjà du VBA en Excel 4 ?

    Mon propos était de comprendre pourquoi, lorsque je faisais appel au contenu d'une variable public définie à la "racine" du workbook, celle-ci revenait à 0!
    Je te l'ai dit : quand une macro est terminée, ses variables disparaissent.
    Donc, si tu les rappelles avec une autre macro, elles sont réinitialisées à leur valeur par défaut.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 21
    Points : 8
    Points
    8
    Par défaut Re: Menhir
    Citation Envoyé par Menhir Voir le message
    Est-ce que ta fenêtre d'exécution est ouverte ? (Ctrl+G dans l'éditeur VBA)


    Il y avait déjà du VBA en Excel 4 ?


    Je te l'ai dit : quand une macro est terminée, ses variables disparaissent.
    Donc, si tu les rappelles avec une autre macro, elles sont réinitialisées à leur valeur par défaut.
    Le = 31/08/2015 13:45:50 apparaît dans la fenêtre d'exécution.
    pour la macro workbook.open
    mais Le = 00:00:00 dans le code de la UserForm CQFD (mais qui ne m'arrange pas!)

    Merci de ton aide Menhir et bonne continuation...

  6. #6
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    La solution la plus simple est de mettre cette valeur dans une cellule d'une feuille de calcul. Comme ça, n'importe quelle macro pourra la récupérer.

    Autre solution : tu te fais une macro Init qui contient les initialisation de variables et tu la lances en début de tes macros.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  7. #7
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Citation Envoyé par Menhir Voir le message
    c'est que toutes les variables disparaissent quand une macro se termine, y compris si elles sont public.
    Pas forcément. Il faut les accompagner de Static. Je ne me souviens plus si Static s'ajoute ou remplace Dim.
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

Discussions similaires

  1. Récupérer des valeurs multiples dans un DBGrid
    Par Antjac dans le forum Bases de données
    Réponses: 7
    Dernier message: 17/12/2007, 20h44
  2. [Débutant] Récupérer des valeurs affichées dans des cases "Edit"
    Par Clint-is-wood dans le forum Interfaces Graphiques
    Réponses: 26
    Dernier message: 24/05/2007, 18h19
  3. Réponses: 2
    Dernier message: 12/04/2006, 10h00
  4. Récupérer des valeurs dans des fichiers html
    Par nico93100 dans le forum Langage
    Réponses: 1
    Dernier message: 05/01/2006, 21h46
  5. Récupérer des valeurs de checkbox dans MySQL
    Par digger dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 05/09/2005, 14h58

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