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 et macros Excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 6
    Par défaut Variables et macros Excel
    Bonjour,
    Je suis en train de développer une application Excel avec plusieurs macros; dans l'une des feuilles, j'ai écrit le code suivant où Score
    est une des macros

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Public Sub Worksheet_Change(ByVal Target As Range)
    e = Target.Address: e = Right$(e, 2)
    If Not Application.Intersect(Target, Range("C17:g34")) Is Nothing Then
        Score
    End If
    End Sub
    Malheureusement, la variable e est remise à 0 lorsque la macro Score se lance.
    Voici ma question: Comment faire pour que la variable e soit partagée avec toutes les macros de mon classeur Excel ?

    Merci pour vos réponses.

  2. #2
    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 173
    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 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Utilise une variable publique
    A lire Utiliser les variables en VBA Excel
    Une autre solution plus intéressante serait que ta procédure Score ait un argument. Ainsi tu passerais l'adresse de target comme apramètre
    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

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Salut.

    Tout d'abord, ta façon d'extraire la ligne de la cellule modifiée n'est pas la plus "académique". Il serait plus simple, et plus sûr d'utiliser e = Target.Row.

    En deuxième lieu, tu as intérêt à utiliser la déclaration obligatoire des variables. Cela t'évitera bien des surprises.

    En troisième lieu, des deux solutions présentées par Philippe (), je préfère de loin la seconde, à savoir passer un paramètre à la fonction SCORE... Il faut éviter les variables globales chaque fois que c'est possible.
    "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...
    ---------------

  4. #4
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Bonjour,

    Je je surenchéris sur tout ce qui a été dit et en rajoute une couche

    Il est fortement conseillé de donner des noms de variables explicites à ses variable, justement quand on commence à utiliser plusieurs modules, e n’est pas un nom explicite si tu la rencontres quelque part, tu devras chercher, la maintenance du code est une des choses à penser dès le départ

    cordialement,

    Didier

  5. #5
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonjour à tous

    On pourrait ergoter entre "je plussoie" et "je plussoye",

    mais sur un forum aussi bien tenu, on n'admet pas :
    Citation Envoyé par Ormonth Voir le message
    Je plussoies


    PGZ

  6. #6
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Salut,

    Ben on est forcément dans le néologisme, dans ce cas, l'S est volontaire pour indiquer que je plussoie encore plus, car, frères humains si vous m'en croyez, parmi nous sur DVP, plus soyez en 2015 !

    ...que je sois pendu si on n'envoie pas balader ces messages


    Didier

  7. #7
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Hello,

    J'ai cru que tu parlais de plussuner, pas de "plusdeusser" !



    PGZ

Discussions similaires

  1. Réponses: 5
    Dernier message: 31/08/2014, 18h16
  2. [XL-2010] Problème variable non définie macro Excel réalisation courrier
    Par benadry dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/03/2014, 13h38
  3. Variable de retour, macro excel depuis C#
    Par pims901 dans le forum C#
    Réponses: 2
    Dernier message: 06/09/2010, 15h54
  4. macro excel 4 : comment afficher une variable ou où trouver un tuto
    Par une_tite_question dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 13/07/2010, 12h18
  5. macro excel renvoyant toutes les valeurs d'une variable
    Par eclipse012 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 05/11/2008, 15h41

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