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 :

Détecter l'exécution en mode pas à pas ? [Toutes versions]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 093
    Billets dans le blog
    20
    Par défaut Détecter l'exécution en mode pas à pas ?
    Bonjour,
    Y a-t-il moyen de savoir si une macro se déroule en pas à pas ou non ?

    Le but serait de n'exécuter certaines lignes que dans ce cas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if pasApas then Worksheets("Feuil1").Activate
    Have a nice day. Oliv'
    Votre réponse est peut être dans mon blog !
    https://www.developpez.net/forums/blogs/191381-oliv-/

  2. #2
    Membre confirmé Avatar de CristofMartins
    Homme Profil pro
    ICH-DEV
    Inscrit en
    Juillet 2012
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Suisse

    Informations professionnelles :
    Activité : ICH-DEV
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2012
    Messages : 140
    Par défaut
    Que veux tu dire par pas à pas ??

  3. #3
    Expert confirmé
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 093
    Billets dans le blog
    20
    Par défaut
    Exécution de la macro en Mode débogage (F8)
    Have a nice day. Oliv'
    Votre réponse est peut être dans mon blog !
    https://www.developpez.net/forums/blogs/191381-oliv-/

  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,

    ça ma paraît contre nature comme truc tu veux en venir à quoi ? visualiser par des Activate des feuilles que tu ne Select ou Activate pas justement dans le code de base afin de vérifier visuellement si il s'y passe ce que tu désires ?

    Vu que du doit dans ce cas créer des lignes de debogage comme celle que tu invoques, tu peux Créer une variable Public drapeau que tu mets à true manuellement (ligne commentée ou non ou dans la fenêtre exécution...) du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if Drapeau = true then Worksheets("Feuil1").Activate
    tu peux en final créer un outils de nettoyage pour supprimer ces lignes automatiquement plus que manuellement (si nombreuses).

    cordialement,

    Didier

  5. #5
    Expert confirmé
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 093
    Billets dans le blog
    20
    Par défaut
    Merci pour ta réponse.
    C'est bien cela vérifier si cela se passe correctement, c'est dans une transposition de données en lignes dans lesquelles j’extraie des données selon les mots avant ou après.
    Et si tout va bien ca fait clignoter mon écran.

    On cherche parfois des choses compliquées où ca peut être simple.

    Sinon j'avais pensé à un truc comme cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    Sub test_pasApas()
        Dim Drapeau
        If Application.VBE.VBProjects.VBE.MainWindow.Visible = True Then
            If MsgBox("Voulez-vous activer le déboggage ++ ?", vbYesNo, "vbe visible") = vbYes Then
                Drapeau = True
            End If
        End If
     
        If Drapeau Then
            Application.ScreenUpdating = True
        Else
            Application.ScreenUpdating = False
        End If
     
        ' MONCODE
     
        'un check
     
        If Drapeau Then Worksheets("Feuil1").Activate
     
        'un stop
     
        If Drapeau Then stop
     
        Application.ScreenUpdating = True
     
     
    End Sub
    Have a nice day. Oliv'
    Votre réponse est peut être dans mon blog !
    https://www.developpez.net/forums/blogs/191381-oliv-/

  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 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,
    Il existe aussi l'instruction Debug.Assert<Condition> qui permet d'interrompre l'exécution du programme si la condition est fausse.
    Exemple Dans cet exemple interruption du programme quand I vaudra 5.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     Dim i As Integer
     For i = 1 To 100
      Debug.Assert i <> 5
     Next
    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

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

Discussions similaires

  1. [AC-2007] la mode debogage pas à pas ne fonctionnement pas
    Par s.rais dans le forum Access
    Réponses: 2
    Dernier message: 03/06/2014, 14h38
  2. comment éxécuter un job en mode debogage pas à pas
    Par sinoun dans le forum Exécution et industrialisation
    Réponses: 2
    Dernier message: 13/03/2012, 13h48
  3. Exécution d'une reqûete pas à pas
    Par savyerm dans le forum Requêtes
    Réponses: 2
    Dernier message: 12/03/2012, 12h36
  4. Réponses: 8
    Dernier message: 04/04/2009, 11h37
  5. Exécuter une application externe pas à pas
    Par leyo666 dans le forum Langages de programmation
    Réponses: 5
    Dernier message: 07/04/2007, 18h41

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