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 :

Excel VBA variables


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 7
    Par défaut Excel VBA variables
    Bonjour à tous,
    Je suis un petit nouveau qui commence à utiliser Vba avec excel,
    j'ai quelques soucis avec les variables.
    J'ai déclaré dans un module standard mes variables en Public pour pouvoir les utiliser dans toutes les macros du projet. Mais quand je suis dans une feuille userform (UserForm_Initialize()), je passe par une macro qui se trouve dans module1 pour prendre les valeurs qui sont attribuées aux variables (dans une feuille excel). les variables sont vides sur la feuille userform, alors que si je vais dans le module1, elles sont bien remplies avec les valeurs prises dans les cellules d'une feuille de calcul. Comment faire pour que ces variables soient accessible par toutes les macros de tous les modules et feuilles userform?

  2. #2
    Membre Expert
    Avatar de JackOuYA
    Inscrit en
    Juin 2008
    Messages
    1 040
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1 040
    Par défaut
    Bonjour,

    Commence par rajouter la ligne :

    en haut de toutes tes feuilles de codes, pense aussi qu'en VBA les variables ne doivent être déclaré qu'une seule fois .

    puis montre nous comment tu déclare tes variables.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 7
    Par défaut
    Bonjour et merci de me répondre, voici comment je déclare mes variables ( 2exemples)
    codes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            Public Nom As Variant
            Public Prenom As Variant

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 567
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 567
    Par défaut
    pour que tes variables soit réelement public lors ce qu'elles sont utilisés dans un usf, il faut qu'elles soit déclarée dans un module

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 7
    Par défaut
    Bonsoir,
    c'est ce que j'ai fait dans un module standart : module1

  6. #6
    Membre Expert
    Avatar de JackOuYA
    Inscrit en
    Juin 2008
    Messages
    1 040
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1 040
    Par défaut
    Citation Envoyé par Corsaire72 Voir le message
    Bonsoir,
    c'est ce que j'ai fait dans un module standart : module1
    si tu as rajouté des Option explicit partout et que tu est déclaré tes variables dans un module standard.Sans voir ton code je ne vois pas comment t'aider.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 7
    Par défaut
    bonsoir,
    voila, j'ai fait un exemple aussi complet que possible, mes variables ne sont pas visible dans tout le projet! pourquoi?
    je joint mon exemple, à qui veut bien se creuser la tête, peut-être ai-ce simple? Merci d'avance
    Fichiers attachés Fichiers attachés

  8. #8
    Membre Expert
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 567
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 567
    Par défaut
    j'ai pas vraiment trouvé pourquoi tes variables ne réagissent pas bien, il y a beaucoup d'erreur dans ton code, peut etre parce que tu a voulu faire un exemple rapide, mais tu te simplifierai vraiment la vie, si tu concentrais tes sub dans le code de la boite de dialogue.
    essaie juste de placer celle là
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Sub DonneesClientFeuilleExemple()
    sous l'initialize, et tu verra que ça marche.
    petit conseil en plus, oublie les select. 99% ne servent a rien et ralentissent le code
    ce genre d'instruction n'a aucune utilité
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Range(ActiveCell).Select
    ligne = ActiveCell.Row
    l'activecell étant par definition déja selectionnée
    un autre exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Sub TestDonneesclient(NrClient)
        Range("b4:b5,c7,d3,d8,e11,b12,c14,b16,b18").Select
        EnBleu
    ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub EnBleu()
    With Selection.Interior
     .ColorIndex = 20
     ' .Pattern = xlSolid
     .PatternColorIndex = xlAutomatic
     End With
    End Sub
    est avantageusement remplacé par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Range("b4:b5,c7,d3,d8,e11,b12,c14,b16,b18").Interior.ColorIndex = 20
    si tu applique ça, tu devrais déja y voir plus clair pour regler ton probleme de variable

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 7
    Par défaut
    Bonjour et merci pour les conseils,
    Effectivement j'ai remarqué que si je mettais ma sub dans la feuille userform cela fonctionne.
    En fait j'ai plusieurs userforms qui utilisent ce genre de sub et j'aurais aimé n'avoir qu'une sub commune et non une dans chaque feuille userform.
    Mais là problème, mes variables ne suivent pas. Je ne comprends pas pourquoi?
    Idem pour mes fonctions EnBleu ou EnJaune qui sont utilisées par plusieurs sub, comme ça c'est plus facile pour la mémoire...

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 7
    Par défaut
    Bonsoir, je pense avoir trouvé, mes variables portent le même nom que les combobox ou textebox de mon userform, j'ai changé les noms dans le userform et depuis ça marche.
    Est ce que c'est bien la cause ou alors un pur hasard?
    Joyeux Noël @+

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

Discussions similaires

  1. Excel VBA PB de variable non définie (=vide)
    Par elhelios dans le forum Excel
    Réponses: 1
    Dernier message: 27/02/2012, 10h48
  2. Réponses: 2
    Dernier message: 15/08/2010, 16h20
  3. Gestion de nom, variable EXCEL/VBA
    Par GCASPIC10 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 14/06/2010, 15h57
  4. [VBA] variable locale <-- cellule excel
    Par k_pone dans le forum VBA Access
    Réponses: 11
    Dernier message: 27/06/2007, 10h26
  5. [VBA excel] une variable pour 2 classeurs
    Par totoche dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 05/01/2006, 09h42

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