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 :

Tracer le code VBA


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 : 73
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 288
    Par défaut Tracer le code VBA
    Bonjour

    je cherche maintenant à optimiser mon code VBA car j'ai constaté avec maintenant un peu d'expérience (je suis parti de zéro pointé) que je n'avais pas toujours bien codé et donc que l'exécution n'est pas optimale et peut poser des problèmes

    Un exemple : lorsque dans une macro je code un "Select" ou "Activate"
    le code de la feuille se déclenche inutilement dans certains cas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub Worksheet_Activate()
    La parade (?)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Application.EnableEvents = False
    feuille.select
    Application.EnableEvents = True
    J'ai cherché et j'ai vu que pour tracer le code il y a 2 options dans "Débogage"
    - Pas à pas principal
    - Pas à pas sortant

    Mais ces options ne sont pas accessibles dans mes Excels

    Existe-t-il un outil ou un moyen de tracer le code lors de l'exécution d'une macro (Call à une macro ou une fonction, select ou activate d'une autre feuille, etc)

    Comment optimisez-vous vos macros ?

    Merci d'avance

  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 166
    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 166
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    En VBA, sauf cas particulier, il n'y a aucune raison d'utiliser les méthodes Select et Activate.
    On peut écrire et lire dans n'importe quelle cellule, feuille ou classeur sans utiliser ces méthodes.

    Exemple : MsgBox Workbooks("2023 Projet.xlsx").Worksheets("t_Project").Range("B2").Value
    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
    Membre éprouvé
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    1 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    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 je vais reprendre mes macros

    Existe-t-il un moyen exhaustif de lister les "Select" et "Activate" d'un fichier sans rechercher macro par macro ?

  4. #4
    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 166
    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 166
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Existe-t-il un moyen exhaustif de lister les "Select" et "Activate" d'un fichier sans rechercher macro par macro ?
    Il y a d'abord la boîte de dialogue Chercher (Ctrl + F) dans l'éditeur VBE et à chaque ligne trouvée, vous pouvez "Taguer" la ligne avec le premier drapeau (voir illustration), il faut pour cela afficher la boîte à outil "Edition", et ensuite il suffit d'aller de tag en tag avec les deux touches du milieu (voir illustration)

    Sinon, il est possible d'écrire un code VBA qui peut effectuer la recherche et donner le nom des modules où se trouvent ces lignes (j'ai peut-être cela dans mes cartons mais je dois chercher)

    Illustration
    Nom : 231210 VBE Chercher et Taguer.png
Affichages : 207
Taille : 45,0 Ko
    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

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 288
    Par défaut
    Bonjour,

    merci je ne connaissais pas le système de tag avec les drapeaux, cela va me permettre d'identifier les Select et Activate

    Par contre je connaissais l'adressage du type " Workbooks("2023 Projet.xlsx").Worksheets("t_Project").Range("B2").Value" mais cela ne me paraissait pas très correct à utiliser d'où mes "Select"

  6. #6
    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 166
    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 166
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Par contre je connaissais l'adressage du type " Workbooks("2023 Projet.xlsx").Worksheets("t_Project").Range("B2").Value" mais cela ne me paraissait pas très correct à utiliser d'où mes "Select"
    Les méthodes Select et Activate sont coûteuses en termes de temps d'exécution et peuvent entraîner des effets de flash lors de l'exécution de la procédure. Il est également important de ne pas oublier de libérer les objets Selection.

    Il est évident que l'on n'utilise pas d'adressage aussi long comme dans l'exemple de code que j'ai publié mais plutôt des variables objets

    Dès qu'une variable est déclarée comme un objet explicite (Workbook, Worksheet, Range, PivotTable, etc.), elle hérite de toutes les propriétés et méthodes de celui-ci.

    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub t()
      Dim Wkb As Workbook
      Dim Sht As Worksheet
      Set Wkb = Workbooks("2023 Projet.xlsx")
      Set Sht = Wkb.Worksheets("t_Project")
      MsgBox Sht.Range("B2").Value
      Set Wkb = Nothing: Set Sht = Nothing
    End Sub
    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

Discussions similaires

  1. aide code pour tracer des courbes vba
    Par tjess01 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/04/2018, 09h35
  2. Code VBA pour exportation Données et tracer de graphique
    Par élie .R dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 31/05/2014, 10h04
  3. Réponses: 3
    Dernier message: 06/09/2005, 10h27
  4. Comment creer une procédure stockée à partir d'un code VBA?
    Par Alcor020980 dans le forum Connexion aux bases de données
    Réponses: 4
    Dernier message: 24/05/2005, 19h55
  5. Recherche de source pour tracer des codes barres
    Par Tardiff Jean-François dans le forum Composants VCL
    Réponses: 3
    Dernier message: 18/10/2004, 16h05

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