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 :

fenêtre de débogage : comment effacer les données depuis vba


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    responsable technique
    Inscrit en
    Décembre 2016
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : responsable technique
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2016
    Messages : 15
    Points : 7
    Points
    7
    Par défaut fenêtre de débogage : comment effacer les données depuis vba
    Bonsoir,

    je bloque sur un petit problème : je n'arrive pas à effacer les données de la fenêtre d'exécution, en mode débogage.

    J'ai essayé plusieurs méthodes toujours non efficaces.

    Merci d'avance pour votre aide.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    With Application.VBE.ActiveWindow.Collection("Exécution")
     
            .Visible = True 'affiche
     
            .SetFocus 'donne le focus
     
            Application.VBE.CommandBars.FindControl(, 756).Execute 'sélectionne tout
     
            'SendKeys "^a"
            SendKeys "{DELETE}" 'supprime
     
         .Close 'ferme la fenêtre
     
    End With

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 183
    Points : 5 515
    Points
    5 515
    Par défaut
    Bonjour,

    Ceci devrait le faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub Clear()
      Application.VBE.Windows("Exécution").SetFocus
      If Application.VBE.ActiveWindow.Caption = "Exécution" And Application.VBE.ActiveWindow.Visible Then
        Application.SendKeys "^a {DEL} {HOME}"
      End If
    End Sub
    Vraiment utile ?
    Cordialement.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    responsable technique
    Inscrit en
    Décembre 2016
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : responsable technique
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2016
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    merci beaucoup Eric pour ta réponse.
    En réalité ça ne marche toujours pas, même si j'essaie de triturer dans tous les sens à partir de ta proposition.

    Ce qui est très étrange c'est que j'ai réalisé une macro qui fonctionne parfaitement si je la lance indépendamment du programme principal.
    Par contre si je l'appelle depuis le programme cela ne marche pas.
    J'ai aussi l'impression que dans le programme c'est l'instruction .setfocus qui ne désigne pas la fenêtre. Si j'arrive à sélectionner du texte via ^a, c'est dans la fenêtre de programmation et non dans la fenêtre d'Exécution que la sélection s'opère.

    Voici la macro indépendante qui fonctionne :

    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
    Sub deletexecution2()
     
     
    ThisWorkbook.Activate
    Worksheets("distribution").Activate
    Worksheets("distribution").Select
     
    With Application.VBE.ActiveWindow.Collection("Exécution")
     
            .Visible = True 'affiche
     
            .SetFocus 'donne le focus
     
            SendKeys "^(a)"
            SendKeys "{DELETE}" 'supprime
     
         '.Close 'ferme la fenêtre
     
        End With
     
    End Sub
    merci pour votre aide à tous.
    Très bonne journée

  4. #4
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 183
    Points : 5 515
    Points
    5 515
    Par défaut
    Et ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub Clear()
         Application.VBE.MainWindow.Visible = True
        Application.VBE.Windows("Exécution").Visible = True
        Application.VBE.Windows("Exécution").SetFocus
        Application.SendKeys "^a {DEL} {HOME}"
    End Sub
    Cordialement

  5. #5
    Futur Membre du Club
    Homme Profil pro
    responsable technique
    Inscrit en
    Décembre 2016
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : responsable technique
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2016
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    rebonjour Eric,

    c'est vraiment très sympa de m'aider.

    Toujours le même problème, si je crée la macro et que je la lance indépendamment du programme, cela marche bien, on efface bien la fenêtre Exécution.
    Si j'appelle la macro depuis le programme, cela ne marche pas.
    Si je copie les lignes directement dans le programme cela ne marche pas non plus.

    C'est compliqué le VBA

    Merci beaucoup

  6. #6
    Membre expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 869
    Points : 3 442
    Points
    3 442
    Billets dans le blog
    1
    Par défaut
    Bonjour,


    Juste une suggestion sans être sûr que cela fonctionne si tu faisais une Function au lieu d'une sub ?

    Et une remarque attention aux mots réservés, les noms des Sub, Function, module, plage ....) ne doivent pas être des mots réservés.

    "Clear" en fait partie il vaut mieux l'appeler "C_Clear"

    A+
    Ils ne savaient pas que c'était impossible ... du coup ils l'ont fait (Mark Twain)

    n'oubliez pas de si les messages vous aide ou sont pertinents et de mettre quand cela est !

  7. #7
    Futur Membre du Club
    Homme Profil pro
    responsable technique
    Inscrit en
    Décembre 2016
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : responsable technique
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2016
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    merci beaucoup Igloobel mais ça ne change rien.

    La procédure ou la fonction isolée marche bien mais si on l'appelle depuis la procédure rien ne fonctionne.

    Décidemment...

  8. #8
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 183
    Points : 5 515
    Points
    5 515
    Par défaut
    Bizarre, sur mon pc cela fonctionne. Exemple attaché.
    Cordialement.
    Fichiers attachés Fichiers attachés

  9. #9
    Futur Membre du Club
    Homme Profil pro
    responsable technique
    Inscrit en
    Décembre 2016
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : responsable technique
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2016
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    Merci beaucoup Eric, avec ton exemple, je viens de comprendre ce qui bloquait. Ce n'était pas l'écriture du code.

    En fait, j'avais écrit la procédure principale dans une feuille alors que les macros sont dans des modules.

    Je viens de tout regrouper dans les modules et là ça fonctionne parfaitement bien.

    En plus dans mes feuilles je n'avais précisé dès le départ l'option explicit, je pense que ca contribue au bug.

    En tout cas merci encore à vous tous pour votre aide précieuse.

Discussions similaires

  1. Comment récupérer les données d'une fenêtre popup ?
    Par Felixfel dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 16/04/2012, 15h59
  2. Réponses: 2
    Dernier message: 29/03/2012, 12h54
  3. Comment effacer les données d'un StringGrid ?
    Par nn2009 dans le forum Composants VCL
    Réponses: 1
    Dernier message: 23/10/2011, 10h39
  4. Ado: comment récupérer les données depuis une bd?
    Par zidane2 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 14/09/2010, 01h09
  5. Comment récupéré les données sur plusieurs fenêtres ?
    Par bon4000 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 17/09/2007, 17h58

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