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

VBA Access Discussion :

Gestion d'erreur dans vba


Sujet :

VBA Access

  1. #1
    Membre actif Avatar de tribaleur
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2006
    Messages
    401
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2006
    Messages : 401
    Points : 237
    Points
    237
    Par défaut Gestion d'erreur dans vba
    Bonjour.

    Je travail actuellement sur une application existante que je doit modifier. Elle doit ce connecter à des fichiers Excel pour une importation. Une gestion d'erreur est mise en place pour voir si le fichier choisi correspond bien au fichier que l'on doit importer.

    ...

    Le problème c'est que je ne comprend absolument pas comment la gestion est faite. voici le code :

    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
    30
    31
    32
    33
    34
    VAR_chemin_fichier = G_AUTO_SAUC_FCT_Ouvrir_fichier(STR_nom_fichier) 'STR_nom_fichier est une variable contenant le nom du fichier à importer
     
        If VAR_chemin_fichier = "" Or IsNull(VAR_chemin_fichier) Or VAR_chemin_fichier = False Then
            MsgBox "Importation du fichier annulée", vbExclamation + vbOKOnly, "Annulation"
            Exit Sub
        End If
     
        Echo False
     
       ...
     
    Set OBJ_Appli_Excel = CreateObject("Excel.Application")
        'enlève les messages d'alertes
        OBJ_Appli_Excel.DisplayAlerts = False
     
        Set OBJ_Classeur_Excel = OBJ_Appli_Excel.Workbooks.Open(Filename:=VAR_chemin_fichier)
     
        With OBJ_Classeur_Excel.ActiveSheet
     
     
           'fait sauter le filtre
            .Range("A1:Z64000").AutoFilter
     
            On Error Resume Next
            'détermine la ligne des en-têtes
            INT_ligne_ref = .Columns(G_AUTO_SAUC_CONST_Col_deb_recap).Find("appélation", LookIn:=xlValues, LookAt:=xlPart).Row'G_AUTO_SAUC_CONST_Col_deb_recap est une contante qui vaut 4
     
            'ajout au 13/03/07 Gestion d'erreur dans le choix du fichier
            If Err <> 0 Then
                MsgBox "Vous n'avez pas sélectionné le bon fichier", vbExclamation + vbOKOnly, "Importation impossible"
                OBJ_Classeur_Excel.Close
                OBJ_Appli_Excel.Close
                Exit Sub
            End If
    Voici le fonction G_AUTO_SAUC_FCT_Ouvrir_fichier :
    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
    Public Function G_AUTO_SAUC_FCT_Ouvrir_fichier(STR_Titre_Fenetre As String) As String
     
    Dim VAR_nom_chemin              As Variant
    Dim HWND_TOPMOST
    Dim OBJ_excel                   As Excel.Application
     
    On Error Resume Next
     
        Set OBJ_excel = CreateObject("Excel.Application")
     
        Call SetWindowPos(OBJ_excel.hwnd, HWND_TOPMOST, 0&, 0&, 800, 580, 0)
     
        G_AUTO_SAUC_FCT_Ouvrir_fichier = OBJ_excel.GetOpenFilename(filefilter:="Fichier d'importation ,*.xls", Title:=STR_Titre_Fenetre)
        'GetOpenFilename(filefilter:="Fichier d'exportation (*.xls) ,*.xls", Title:="Choix du fichier pour l'exportation du rapport de caisse")
        Set OBJ_excel = Nothing
     
    End Function
    Ce que j'ai compris (ou cru comprendre ) :
    -G_AUTO_SAUC_FCT_Ouvrir_fichier permet d'ouvrir la fenetre windows qui me demande de sélectionner le fichier Excel à ouvrir
    -Ensuite si Err est différent de 0 alors il y à une erreur dans le choix du fichier...mais là ...pour moi ça veu rien dire.
    -Err est quelque chose de vba qui permet la gestion des erreurs...mais j'en sais pas plus.
    -On Error Resume next permet en cas d'erreur de continuer quand même.

    Voila tous ce que je sais ou ai compris (plus ou moins bien).

    Si vous pouviez m'expliquer comment le tout fonctionne ... parce que moi là je nage complet!!!...

    Merci d'avance

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Points : 2 221
    Points
    2 221
    Par défaut
    bonjour,

    un très bon tuto :
    http://silkyroad.developpez.com/VBA/GestionErreurs/

    Voir le chapitre III : MACROS

    cordialement,

    Philippe

  3. #3
    Membre actif Avatar de tribaleur
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2006
    Messages
    401
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2006
    Messages : 401
    Points : 237
    Points
    237
    Par défaut
    MERCI!!

    En effet le tuto est super!!!

    Pour ce qui est de ma gestion des erreurs voila ce que j'ai compris :

    -les fichiers que je doit importer ont une ligne avec la valeur "appelation".
    -Dans les cas ou cette ligne n'est pas trouvée dans le fichier une erreur est renvoyée et donc on rentre dans la condition "if (Err <>0)"
    -On peu donc afficher le message "vous n'importez pas le bon fichier".

    En tout cas encore merci à toi

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

Discussions similaires

  1. [OL-2010] Gestion des erreurs dans un script VBA
    Par sebastian37 dans le forum Outlook
    Réponses: 1
    Dernier message: 08/07/2011, 21h31
  2. [vba-e] Gestion D'erreur Dans Un Inputbox
    Par KKshi666 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 09/05/2007, 10h39
  3. Traitement d'erreur dans VBA
    Par charleshbo dans le forum VBA Access
    Réponses: 9
    Dernier message: 10/02/2006, 15h03
  4. Gestion d'erreur dans les procédure
    Par speedy1496 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 20/01/2006, 13h02
  5. [VB6] Gestion des erreurs dans une dll
    Par zimba-tm dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 02/08/2004, 12h20

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