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 :

on error goto .


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Juin 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Juin 2014
    Messages : 18
    Par défaut on error goto .
    Bonjour

    j'ai créé une série de de macro protégées faisant référence à des onglets etc
    en cas d'erreur je voudrais forcer la fermeture du fichier
    exemple en cas de changement de nom de l'onglet ou d'une autre erreur d'exécution est - il possible d'empêcher l'ouverture de visual basic editor et de forcer la fermeture du classeur sans enregistrement?

    j'ai essayer ça , mais ça ne fonctionne pas (si l'onglet "janvier" n'existe pas , l'éditeur s'ouvre ):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
              Sub test_erreur()
     
                     On Error GoTo Gestion_Erreur
     
                     Sheet(janvier).Activate
     
                    Gestion_Erreur:
                   MsgBox "Une erreur s'est produite. Fin de la procédure"
                      Exit Sub
     
                     ActiveWorkbook.Close Savechanges:=False
                     End Sub
    Merci à tous

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    721
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 721
    Par défaut
    Le nom janvier devrait être quoté non ?
    De manière plus générale, il me semble préférable d'anticiper l'erreur plutôt que la gérer après coup. Il est facile de vérifier si un sheet portant un certain nom existe.
    D'autre part, le Exit Sub est probablement à la mauvaise place et a pour effet de sortir de la procédure trop tôt: la ligne suivante ne sera pas exécutée.

  3. #3
    Membre Expert Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 574
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 574
    Par défaut
    bonjour,
    ton code fonctionnerait si tu avais écri Sheets et pas Sheet!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     'Sheet(janvier).Activate
      Sheets(janvier).Activate
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub test_erreur()
    On Error GoTo Gestion_Erreur
    Err.Raise 1664, "APP", "Vas donc boire une bière à ma santé !"
     
    Gestion_Erreur:
    MsgBox "Err : " & Err.Number & vbCrLf & "Source : " & Err.Source & vbCrLf & Err.Description
    Exit Sub
    ActiveWorkbook.Close Savechanges:=False
    End Sub

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 508
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 508
    Par défaut
    Attention à ne pas tomber dans la facilité.

    La seule raison d'être des gestionnaires d'erreur est de prendre en charge quelque chose contre lequel tu ne peux te prémunir (une connexion réseau qui lâche par exemple).
    Dans le cas contraire, il s'agit d'erreur de programmation, que tu te dois de corriger.

    Vérifier l'existence d'une feuille est facile:
    Tu parcours la collection Worksheets et tu test le nom de chaque feuille.
    Par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Public Function SheetExist(ByVal Name As String) As Boolean
        Dim Return As Boolean
        Return = False
     
        Dim Ws As Excel.Worksheet
        For Each Ws In thisWorkbook.Worksheets
            If(Ws.Name = Name) Then
                Return = True
            End If
        Next
        SheetExist = Return
    End Function

  5. #5
    Membre Expert Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 574
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 574
    Par défaut
    bonjour deedolith,
    pour l'heure, je pense que notre amis veux générer une erreur pour tester, mais vba l'informais d'une erreur de syntaxe sur Sheet!

    le Sheets(janvier).Activate devait générer l'erreur attendue.
    ceci dit tu as raison la gestion des erreur doit prendre en compte ce qui n'est pas prédictif.

Discussions similaires

  1. pourquoi on error goto ne fonctionne qu'une seule fois ?
    Par alsimbad dans le forum Général VBA
    Réponses: 9
    Dernier message: 05/09/2014, 12h09
  2. pb avec "On error goto"
    Par malingue dans le forum Access
    Réponses: 9
    Dernier message: 20/06/2006, 19h54
  3. [vb6]On Error goto 0
    Par riesseg dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 20/04/2006, 20h04
  4. On error goto Err : goto non exécutée au 2ème appel
    Par charliejo dans le forum Access
    Réponses: 1
    Dernier message: 11/04/2006, 15h00
  5. [VBA-E]Pb "On Error GoTo"
    Par hdidan dans le forum Macros et VBA Excel
    Réponses: 33
    Dernier message: 04/04/2006, 18h41

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