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 :

Deux On Error GoTo dans une procedure [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2010
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 28
    Par défaut Deux On Error GoTo dans une procedure
    Bonjour,

    j'ai une petite question pratique sur les on Error Goto.

    Je voudrais savoir si il est possible d avoir un code de ce type la :

    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
    29
    Sub test()
     
    On Error GoTo CasErreur
    '...
    'procedure
    '...
    Dim i As Integer
        i = VerifClasseur(monFichier)
        Select Case i
            Case 0:
            Case 70:
            Case Else:
        End Select
    Exit Sub
    '...
    'procedure
    '...
    CasErreur:  MsgBox ("il y a eu une erreur")
    End Sub
     
    Private Function VerifClasseur(Fichier As String) As Integer
    Dim X As Integer
        On Error Resume Next
        X = FreeFile()
        Open Fichier For Input Lock Read As #X
        Close X
        VerifClasseur = Err.Number
        On Error GoTo 0
    End Function
    C est a dire est il possible d utiliser un On Error GoTo au debut de mon code, mais en meme temps d utiliser un On Error a un autre endroit de ma procedure (dans mon cas pour tester si un fichier est ouvert).

    Je me demande si les erreurs liees a la recherche d un fichier deja ouvert (case 0 ou 70) vont etre aussi considerees comme des erreurs par mon premier On Error GoTo, ce qui n entrenerait aucune execution de ma procedure.
    Ma question est surement simplissime, mais je viens de me lancer dans les On Error GoTo et je n ai pas trouve de reponse a ma question.

    Merci !

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    633
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 633
    Par défaut
    Bonjour

    Je voudrais savoir si il est possible d avoir un code de ce type la :
    oui mais, Dans Sub test le Exit Sub est mal placé car le code qui le suit ne sera jamais executé.

    soit
    - tu veux quitter le sub sur un défaut spécifique, dans ce cas tu met le Exit sub dans le case correspondant.

    - tu veux quitter le sub sur n'inporte quel défaut que ta fonction t'as renvoyée, dans ce cas il faut effectuer un test (à la place de Exit Sub)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If i <> 0 Then Exit Sub
    et dans tout les cas placer Exit sub juste avant CasErreur: pour éviter d'avoir le message pour rien.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    'procedure
    '...
    Exit Sub
    CasErreur:  MsgBox ("il y a eu une erreur")
    End Sub

    Je me demande si les erreurs liees a la recherche d un fichier deja ouvert (case 0 ou 70) vont etre aussi considerees comme des erreurs par mon premier On Error GoTo, ce qui n entrenerait aucune execution de ma procedure.
    Non, le fait d'avoir mis en fin de ta fonction on error goto 0 reinitialise l'erreur (qui repasse à 0) donc quand tu reviens dans ton Sub c'est comme si tu n'avais pas eu d'erreur.

    j'espère avoir été suffisemment clair dans mes explications.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 07/08/2007, 19h48
  2. Probleme dans une procedure stockée
    Par malbaladejo dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 07/07/2004, 14h08
  3. [DEBUTANT] Une vue dans une procedure stockee ?
    Par Invité dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 25/02/2004, 11h57
  4. Réponses: 4
    Dernier message: 28/12/2003, 15h50
  5. [TP]code asm dans une procedure
    Par M.Dlb dans le forum Turbo Pascal
    Réponses: 3
    Dernier message: 17/08/2002, 20h43

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