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

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    avril 2019
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : avril 2019
    Messages : 34
    Points : 29
    Points
    29

    Par défaut Problème avec la gestion d'erreur

    Bonjour,
    J'ai un gros problème avec la gestion d'erreur, elle ne marche pas tout le temps et je ne comprends pas pourquoi ... L'erreur apparaît sur la première gestion d'erreur avec un chiffre tel que 1500,00 quand il y a seulement trois chiffre avant la virgule comme 995,00 cela marche très bien...
    Voici mon 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
      If Not IsEmpty(Cells(n, 4)) And IsEmpty(Cells(n, 3)) And IsEmpty(Cells(n, 6)) Then 'Juste avec le prix
                     aconv = Cells(n, 4)
                     Tableau = Split(aconv, ",")
                     'MsgBox Tableau(1)
                     'MsgBox Len(calcul)
                     On Error GoTo GestionErreur
                     If IsEmpty(Tableau(1)) Then
    GestionErreur:
    If Err.Number = 9 Then
                     chcar = aconv & ",00"
                     End If
                     Else
                     If Len(Tableau(1)) = 1 And Tableau(1) <> 0 Then
                      chcar = aconv & "0"
                     ElseIf Len(Tableau(1)) = 2 Then
                        chcar = aconv
                       'MsgBox chcar
                     End If
                     End If

  2. #2
    Expert éminent

    Homme Profil pro
    Développeur .NET
    Inscrit en
    janvier 2012
    Messages
    4 686
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : janvier 2012
    Messages : 4 686
    Points : 9 768
    Points
    9 768
    Billets dans le blog
    30

    Par défaut

    Tu ne peux pas avoir de gestion d'erreur au milieu des opérations normales de ta sub. Tu dois la mettre en seul bloc, indépendant du reste de ta sub

    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 MachinTruc()
        On error goto Gestionerreur
        les opérations de la sub
    exit sub
    GestionErreur:
       If Err.Number = 9 Then
           chcar = aconv & ",00"
           Resume
       elseif error.number = y then
           -----
          Resume
       elseif error,number = z
           -----
           resume
       etc
       else
       End If
    end sub
    ou bien

    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
    Sub MachinTruc()
        On error goto Gestionerreur
        les opérations de la sub
    exit sub
    GestionErreur:
       Select Case Err.Number
           case 9   
               chcar = aconv & ",00"
               Resume
           case y
               -----
               Resume
           Case  z
               -----
               Resume
            etc
           case else
       End select
    end sub
    Et puis l'endroit où tu places ta ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    On Error GoTo GestionErreur
    a toute son importance. Si tu as juste une gestion d'erreur, aucune erreur survenant avant ta ligne ne sera gérée, et toutes les erreurs après le seront. Et c'est inutile de mettre cela dans une boucle. Une seule fois suffit.

    Et puis quant à savoir pour 3 chiffres ne causent pas d'erreur et que quatre en causent, personne ne peut le savoir parce que tu ne dis pas d'où ils proviennent, à part que c'est un tableau dont on ignore tout. (Excel, Word ? Quelles données ?)

    Pour savoir quelle ligne cause l'erreur, tu mets des points d'arrêts sur les conditions de ta gestion d'erreur et tu regardes/remontes dans la Pille des appels pour trouver la ligne.
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

Discussions similaires

  1. [ZF 1.7] Zend_Log problème avec la gestion des erreurs
    Par miya dans le forum Zend Framework
    Réponses: 9
    Dernier message: 26/05/2009, 18h33
  2. Problème avec un message d'erreur
    Par L'Oracle dans le forum Access
    Réponses: 4
    Dernier message: 08/04/2006, 11h11
  3. Réponses: 22
    Dernier message: 06/04/2006, 14h45
  4. Problème avec fichier Excel génère erreur
    Par Yanmeunier dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 17/02/2006, 11h53
  5. Problème avec la gestion des événements
    Par CynO dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 17/10/2005, 10h07

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