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 :

Intercepter l'arrêt intempestif d'une macro


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé

    Profil pro
    Retraité (Travailleur autonome)
    Inscrit en
    Octobre 2008
    Messages
    82
    Détails du profil
    Informations personnelles :
    Âge : 78
    Localisation : Canada

    Informations professionnelles :
    Activité : Retraité (Travailleur autonome)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 82
    Billets dans le blog
    1
    Par défaut Intercepter l'arrêt intempestif d'une macro
    Bonjour à tous,

    Je voudrais savoir s'il est possible d'intercepter l'arrêt d'une macro (pour cause de bug par exemple) et ensuite lancer automatiquement une autre macro pour quitter excel sans sauver le classeur.

    Merci ce votre attention.

    Pierre

  2. #2
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonsoir.

    Au début de la procédure qui peut lever une erreur, placer une instruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    On Error GOTO etiquette
    . Si une erreur est levée dans l'exécution des lignes suivantes, cette exécution ne s'arrête pas mais est détournée vers la ligne marquée Etiquette, ce qui permet alors de faire ce que l'on veut.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub Machin
    Dim ...
    On Error goto lblError
    ...'code actuel
    Exit sub
    lblError:
        ThisWorkbook.Close False
    End sub
    En gros.

    Cordialement,

    PGZ

  3. #3
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Bonsoir
    Une lien traitant la gestion des erreurs

  4. #4
    Membre confirmé

    Profil pro
    Retraité (Travailleur autonome)
    Inscrit en
    Octobre 2008
    Messages
    82
    Détails du profil
    Informations personnelles :
    Âge : 78
    Localisation : Canada

    Informations professionnelles :
    Activité : Retraité (Travailleur autonome)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 82
    Billets dans le blog
    1
    Par défaut Intercepter l'arrêt du programme...
    Merci à vous de me soumettre vos solutions mais le cas est plus grave qu'il ne paraît.

    Mon programme (VBA Excel 2007) comporte plus de 50,000 lignes de code réparties dans une trentaine de modules d'objets, 2 modules standards et 3 modules de classes. Je sais que je pourrais ajouter le code nécessaire pour intercepter les erreurs dans chacune des procédures, chacun des contrôles sur chacunes des UserForms etc. Mais celà encombrerait le programme sans parler de l'importance de la tâche!

    Ce que je cherche c'est une façon d'intercepter le clic sur le bouton "Fin" dans la boîte de dialogue qui apparaît quand l'erreur fait planter le programme. Il y a 3 choix: "Fin", "Débugage" et "Aide". S'il était possible de savoir sur quel bouton l'utilisateur clique et que je puisse prendre le contrôle à ce moment là, je pourrais faire exécuter le code approprié.

    Voilà où j'en suis.

    Merci de vous intéresser à ce petit problème

    Pierre

  5. #5
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Salut.

    Tel que tu le décris, le cas semble grave. Cela fait penser à une usine à gaz dont on a égaré les plans.
    Si c'est le cas, c'est peut-êre desespéré!

    SI tu ne peux même pas utiliser la gestion des erreurs...

    Bon courage.

    PGZ

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Dans ce genre de cas, j'essaye toujours de savoir d'où vient l'erreur (mauvaises saisies, et...)

    Le but est de mettre les rustines adéquates (gestion d'erreur ou contrôle de saisie par exemple) pour éviter ce genre d'erreur et non de trouver un palliatif pour éviter un plantage.

    Philippe

Discussions similaires

  1. L'exécution d'une macro s'arrête sur l'instruction copy
    Par defluc dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 12/12/2010, 23h20
  2. [PPT-2007] Arrêt de l'enregistrement d'une Macro
    Par PPz78 dans le forum VBA PowerPoint
    Réponses: 1
    Dernier message: 21/09/2010, 22h43
  3. Arrêt défilement de l'écran lors d'une macro
    Par baime dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/05/2009, 09h00
  4. Suppression d'une macro VB par une macro : Problème " Mode Arrêt "
    Par CGANE dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 15/05/2008, 15h50
  5. Intercepter un clic dans un userform pendant l'exécution d'une macro
    Par ouskel'n'or dans le forum Macros et VBA Excel
    Réponses: 21
    Dernier message: 05/04/2008, 14h40

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