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 :

Bouton "cancel" pour stopper des macros


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 35
    Points : 25
    Points
    25
    Par défaut Bouton "cancel" pour stopper des macros
    Bonjour,

    J'utilise excel et le solver excel pour lancer une résoudre de gros systèmes d'équations à la chaine. J'ai fait un boutou "Ok" lié à une function qui s'occupe de faire tout ça. Les calculs peuvent durer plusieurs minutes...

    Ma question: Sachant que pendant l'attente, mon code tourne (et celui du solver) comment puis-je faire un bouton "cancel" qui prendrait la priorité sur le code en marche pour arrêter la macro?

    Merci d'avance!

  2. #2
    Membre éclairé

    Profil pro
    Inscrit en
    Mai 2007
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 514
    Points : 824
    Points
    824
    Par défaut
    Bonjour,

    Tu peux utiliser la touche Echap:

    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
     
    Sub LongueMacro()
        Application.EnableCancelKey = xlErrorHandler
        On Error GoTo ErrHandler
     
        'Le code
     
        Exit Sub
    ErrHandler:
        If Err.Number = 18 Then
            If MsgBox("Arreter la macro?", vbYesNo + vbQuestion) = vbYes Then
                Exit Sub
            Else
                Resume  'Reprend l'execution
            End If
        End If
    End Sub
    Cordialement,

    Tirex28/

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 35
    Points : 25
    Points
    25
    Par défaut
    J'ai fait ce que tu m'as indiqué ci-dessus. C'est exactement ce que je voulais mais ça ne marche pas toujours !

    La raison, ma macro utilise le solver en boucle pour résoudre des équation.
    Comme le solver (qui est une macro) tourne 8/10 du temps de l'exucution, quand je fais "échap" je lance la pause du solver et non celle de mon code.

    Avec les options "stop" ou "continue". Si je fais stop, le solver laisse tomber le calcul en cours et passe à l'itération suivante de ma boucle... Mais ma macro tourne toujours...

    Il faudrait que je trouve un moyen de désactiver cette option du solver ou de prendre la priorité dessus...

    Des solutions?

  4. #4
    Membre éclairé

    Profil pro
    Inscrit en
    Mai 2007
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 514
    Points : 824
    Points
    824
    Par défaut
    Bonjour,

    Tu peux essayer de tester la valeur de tes variables avant et apres l'appel au solver. Si les valeurs ne changent pas ou ne sont pas solution de l'equation il est possible (mais pas certain, par exemple si il n'y a pas de solution) que le solver ait été interrompu.

    Il faudrait que je trouve un moyen de désactiver cette option du solver ou de prendre la priorité dessus...
    Accéder au code du solveur pour modifier les gestions d'erreurs internes étant impossible je crois qu'il n'y a pas d'autres solutions que de dévelloper tes propres fonctions pour résoudre tes équations.


    Cordialement,

    Tirex28/

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 563
    Points : 1 691
    Points
    1 691
    Par défaut
    tu peux eut etre faire aussi ctrl maj pause peut etre que l'action sera differente de echap

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 35
    Points : 25
    Points
    25
    Par défaut
    C'est exactement ce que j'ai pensé ce matin:
    faire un test sur le dernier résultat, si celui-ci est nul, alors le solver a été arreté...

    Je vais essayer et je vous dirai.

    J'ai aussi envoyer un mail a Frontline system, les mecs qui ont fait le solver, on verra bien.

Discussions similaires

  1. Bouton pour stopper une macro
    Par Kestion100 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/05/2015, 20h18
  2. Cherche tuto pour créer des macros
    Par wyzer dans le forum Lotus Notes
    Réponses: 0
    Dernier message: 24/02/2011, 16h36

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