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 :

Comment arreter une Sub dans VBA apres une erreur


Sujet :

Macros et VBA Excel

  1. #1
    Débutant  
    Inscrit en
    Novembre 2006
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 073
    Points : 217
    Points
    217
    Par défaut Comment arreter une Sub dans VBA apres une erreur
    Bonjour

    Comment on fait pour qu'une procedure a la suite d'une erreur s'arrete de calculer?

    Par exemple supposons qu'on ait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Function Ln (x)
    Ln = WorksheetFunction.Ln(x)
    end function
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Sub essais()
    x=-1
    L=Ln(x)
    End sub

    Il va y avoir un pb
    Je veux creer un test if qui permet de tout arreter si x est negatif

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Sub essais()
    Dim x, l As Variant
    On Error GoTo fin
    x = -1
    l = Log(x)
    Exit Sub
    fin:
    MsgBox ("errare humanum est")
    End Sub

  3. #3
    Débutant  
    Inscrit en
    Novembre 2006
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 073
    Points : 217
    Points
    217
    Par défaut
    merci
    mais je n'aime pas trop le goto
    y a t il plus propre que ca?

  4. #4
    Membre chevronné Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Points : 2 071
    Points
    2 071
    Par défaut
    Et non hélas, 3 fois hélas.
    La gestion des exceptions, une des plus grosses faiblesse de VB !

    Tu peux faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    On error resume next
    Mais dans ce cas , tu ne verras jamais si il y a une erreur !

  5. #5
    Membre chevronné Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Points : 2 071
    Points
    2 071
    Par défaut
    En relisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub essais()
    x=-1
    IF x>=0 THEN
     L=Ln(x)
    else
     msgbox ("Valeur négative !")
    end if
    End sub

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 21/02/2013, 10h43
  2. Compléter une base de donnee depuis une sub dans un fichier Excel
    Par mimi123456789 dans le forum VBA Access
    Réponses: 2
    Dernier message: 24/08/2012, 16h59
  3. Réponses: 1
    Dernier message: 11/02/2009, 06h33
  4. Réponses: 2
    Dernier message: 17/04/2007, 23h35
  5. Réponses: 12
    Dernier message: 05/03/2007, 11h52

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