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 :

Optimisation du code VBA [XL-365]


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 Optimisation du code VBA
    Bonjour

    dans l'optique de nettoyer et optimiser mes macros je me demande s'il y a un moyen de détecter dans une macro les variables déclarées mais inutilisées

    D'autre part j'ai lu des infos contradictoires dans différents articles :
    Lorsqu'une variable est utilisable dans plusieurs macros certains préconisent de la déclarer en "Public" dans un module séparé, d'autres de la déclarer dans chaque module ?

  2. #2
    Membre Expert
    Inscrit en
    Décembre 2002
    Messages
    993
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 993
    Par défaut
    Bonjour, question déjà posée dans le forum ici: https://www.developpez.net/forums/d1...non-utilisees/

    En ce qui concerne l’utilisation d’une variable dans plusieurs macros, il existe deux approches courantes :

    Déclaration publique : Si vous voulez que la variable soit accessible à toutes les macros dans tous les modules, vous pouvez la déclarer comme Public en dehors de toute procédure dans un module standard.
    Par exemple :
    Public MaVariable As Integer

    Déclaration dans chaque module : Si vous voulez que la variable soit accessible uniquement aux macros d’un module spécifique, vous pouvez la déclarer dans chaque module.
    Par exemple :
    Sub MaMacro()
    Dim MaVariable As Integer
    '...
    End Sub

    La méthode à choisir dépend de vos besoins spécifiques. Si vous voulez que la variable conserve sa valeur entre les appels de macro et soit accessible à toutes les macros, utilisez une déclaration Public. Si la variable n’est utilisée que dans un module spécifique, déclarez-la dans ce module.

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 508
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 508
    Par défaut
    Hello,

    Je me permet de mettre un bémol:
    Les variables public (autrement dit globales) sont à éviter.
    En effet, il n'y a rien de pire à debugger qu'une liste de variables modifiables par n'importe qui, n'importe quand, sans aucun contrôle ni contexte.
    On préfèreras utiliser les paramètres de fonction / procédure. Cela apporte plus de clarté, plus de contrôle, plus de sens à ton code.

  4. #4
    Membre émérite Avatar de Valtrase
    Homme Profil pro
    Jeune retraité...
    Inscrit en
    Janvier 2016
    Messages
    508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Jeune retraité...
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Janvier 2016
    Messages : 508
    Par défaut
    Salut,
    dans l'optique de nettoyer et optimiser mes macros je me demande s'il y a un moyen de détecter dans une macro les variables déclarées mais inutilisées
    Tu as Rubberduck qui est gratuit et qui fait très bien le Job : https://rubberduckvba.com/

  5. #5
    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
    #4

    un peu complexe pour moi ... dommage

  6. #6
    Membre émérite Avatar de Valtrase
    Homme Profil pro
    Jeune retraité...
    Inscrit en
    Janvier 2016
    Messages
    508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Jeune retraité...
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Janvier 2016
    Messages : 508
    Par défaut
    Re,
    un peu complexe pour moi ... dommage
    A installer ou a utiliser ?

    Tu peux consulter l'aide en ligne :
    Home · rubberduck-vba/Rubberduck Wiki · GitHub

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

Discussions similaires

  1. [XL-2007] optimisation du code vba excel
    Par Maxim0 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 15/07/2011, 15h43
  2. [Toutes versions] Optimiser le code VBA (gestion de liste)
    Par BAHIRI dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 09/03/2011, 01h10
  3. [XL-2007] Optimiser un code VBA pour accélérer l'éxécution
    Par Rayanea dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 01/08/2010, 15h18
  4. Optimisation de code VBA
    Par MartinezGarcia dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 25/02/2008, 13h11
  5. Réponses: 13
    Dernier message: 20/04/2006, 15h37

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