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 :

Problème gestion des erreurs


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 71
    Par défaut Problème gestion des erreurs
    Bonjour à tous,

    J'ai un nouveau problème mais j'avoue ne pas comprendre ce qui se passe.

    Je me connecte à une base de données SQL Server. Ca fonctionnait encore très bien hier mais depuis aujourd'hui, la gestion des erreurs est très étrange.
    dans ma chaine de connexion strCon, j'ai une IP, un user et un mdp. Lorsque j'essaye de me connecter avec ces mêmes infos via SQLDeveloper par exemple, j'y arrive bien mais via le bout de code vba excel, ça ne fonctionne pas. Le code err.number renvoyé est très étrange : -2147352565, de ce fait, il rentre dans le if Err.Number<>0 then
    Par contre ce qui est encore plus étonnant est que si j'ajoute la ligne EcrireLogFile (CStr(Err.Number)) juste avant le if, là il rentre bien dans le else du if Err.Number <> 0 then

    C'est à n'y plus rien comprendre.

    Voici le code qui me pose problème aujourd'hui :

    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
     
    'Connexion à une base de données SQLSERVER (bien sûr strCon est renseignée)
        cnDBWST.ConnectionTimeout = 15
        cnDBWST.ConnectionString = strCon
        ErreurConnexionBDDWST = False
        Continue = False
     
        On Error Resume Next
        cnDBWST.Open
        'EcrireLogFile (CStr(Err.Number))  => le Err.number vaut -2147352565 lorsque la connexion fonctionne mais POURQUOI ?? 
        If Err.Number <> 0 Then
          EcrireLogFile (Err.Description)
          EcrireLogFile (CStr(Err.Number))
          Err.Clear
        Else
            Continue = True
     
        end if
    Il y a certainement une explication mais j'avoue que je ne trouve pas et je sèche.

    Merci pour votre aide si vous voyez quelque chose.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 71
    Par défaut
    Pour compléter mon premier post, je m'aperçois que je rentre dans le code If Err.Number <> 0 Then alors qu'ensuite quand je log Err.number il est à 0 et Err.Description est vide.

    Du coup, je ne comprends pas comment je peux rentrer dans le IF alors qu'il est à 0 !!

    Il y a vraiment quelque chose qui m'échappe.

    Merci pour votre aide.

  3. #3
    Membre émérite
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2022
    Messages
    685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Octobre 2022
    Messages : 685
    Par défaut
    Bonjour

    Il n'y aurait pas un On Error resume next dans EcrireLogFile ?

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 71
    Par défaut
    Bonjour,

    Non mais par contre il y a un On Error Goto Erreur

    Ca peut provoquer un souci ?

    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
     
    Sub EcrireLogFile(Msg As String)
      Dim FTextLog As Long
      Dim NomFichierLog As String
      On Error GoTo Erreur
        NomFichierLog = ActiveWorkbook.Path & "\" & Sheets("Parametres").Range("B7").Value & ".log"
        FTextLog = FreeFile
        Open NomFichierLog For Append As #FTextLog
     
        Print #FTextLog, Now & " : " & Msg & vbCrLf
     
        Close #FTextLog
        Exit Sub
     
    Erreur:
      MsgBox "Le fichier de log est inaccessible"
      Close #FTextLog
    End Sub

  5. #5
    Membre émérite
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2022
    Messages
    685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Octobre 2022
    Messages : 685
    Par défaut
    Re,

    vérifie toi-même :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub Test()
    Dim toto As Long
    On Error Resume Next
    Debug.Print Err.Number
    toto = 1 / 0
    Debug.Print Err.Number
    On Error GoTo fin
    Debug.Print Err.Number
    fin:
    End Sub

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 71
    Par défaut
    J'ai éxécuté votre procédure et voici le résultat :

    0
    11
    0

    Ca a l'air de bien fonctionner !!
    Je ne comprends pas.

    J'ai retrouvé un ancien fichier excel qui fonctionnait et j'ai testé le code est identique et ça fonctionne !!
    je ne comprends plus rien.
    Du coup, j'ai fait un copié collé du code pour le mettre dans mon fichier (qui pose souci) et ça ne fonctionne pas !
    Il doit donc y avoir quelque chose d'autres qui pose problème mais j'avoue je ne sais pas trop.
    je vais essayer de tout passer en revue pour vérifier.

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

Discussions similaires

  1. [PowerShell] Problème gestion des erreurs
    Par SGS75 dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 12/12/2019, 10h27
  2. Problème concernant la gestion des erreurs
    Par wmenant dans le forum VB.NET
    Réponses: 6
    Dernier message: 26/06/2008, 15h13
  3. Problèmes gestion des erreurs
    Par <Zer0> dans le forum Ruby on Rails
    Réponses: 2
    Dernier message: 01/09/2007, 17h12
  4. Problème de sélection dans un tableau dynamique (gestion des erreurs)
    Par aulilou dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 01/08/2007, 17h38
  5. Problème sur la gestion des erreurs
    Par ronio dans le forum Langage
    Réponses: 4
    Dernier message: 08/11/2006, 10h47

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