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 :

Fonction On Error non prise en compte


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 2004
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 101
    Par défaut Fonction On Error non prise en compte
    Bonjour,
    A partir d'une source de données externe, je récupère des informations que je retraite avant de restituer dans un fichier .txt.

    Il peut arriver que mes cellules aient pour résultat #N/A parce que toutes les valeurs de mon tableau (pour faire simple une sorte de matrice) n'ont pas de correspondance, mais je ne peux pas le savoir d'avance, d'ou le #N/A.

    Par contre, dans le code VBA que j'utilise pour générer mon fichier en sortie, lorsque je rencontre une cellule qui a cette valeur, malgré le On error placé juste avant, ça me stoppe l'exécution avec avec un message :
    Erreur d'exécution '13'
    Incompatilité de type

    Et je peux débugger si je le souhaite.

    Pour info, lorsque je trace la valeur de ma cellule, j'obtiens :
    Range(RefColonne & Idx).Value = Erreur 2042

    Si quelqu'un a une idée pourquoi mon on error placé avant ne fonctionne pas ou bypasser cette valeur, je suis GRANDEMENT preneur parce ça fait un petit moment que j'essaye de contourner cette histoire sans succès !!!

    D'avance merci

    M

  2. #2
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    Et si tu nous montrais (au moins) la ligne de code sur laquelle il y a le "On Error" ?

  3. #3
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonjour,

    Utilise alors une expression conditionnelle du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Cells(X, Y).Value = xlErrNA Then
    Que (de mémoire car je n'ai pas Excel sous la main), tu peux également exprimer ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If CVErr(xlErrNA) = Range(..ton range...) Then
    et transforme comme tu veux pour envoyer "ailleurs"

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

    Informations forums :
    Inscription : Décembre 2004
    Messages : 101
    Par défaut
    Désolé
    Voici

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Cours = 0
          On Error GoTo Error_Cours
          If Range(RefColonne & Idx).Value <> "#N/A N/A" _
              And Range(RefColonne & Idx).Value <> "#N/A" _
              And Range(RefColonne & Idx).Value <> "#N/A N/P" _
              And Range(RefColonne & Idx).Value <> "#N/A T/D" _
              And Range(RefColonne & Idx).Value <> "        " Then
              Cours = Range(RefColonne & Idx).Value
    Retour_Cours:
              If Cours <> 0 Then
                   Print #1, Instrument & " ," & Identificateur & " ," & Cours & ","
              End If
          End If
    le code plante sur le IF

    Merci

  5. #5
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if not cours = xlErrNA Then
      If Cours <> 0 Then
         ..............
      end if
    end if
    et oublie ce vilain On error Resume Next !

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

    Informations forums :
    Inscription : Décembre 2004
    Messages : 101
    Par défaut
    Merci pour les réponses.
    En fait, en // j'ai fouillé un peu partour sur le net et j'ai trouvé une autre méthode avec Application.IsError.
    J'ai donc un 1er niveau de vérification

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Not Application.IsError(Range(RefColonne & Idx).Value) Then
    avant de récupérer ma valeur.

    Merci pour l'aide.


    M

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

Discussions similaires

  1. Non prise en compte de certaines conditions avec Fonction SI
    Par argaz01 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 14/06/2010, 08h10
  2. [Débutant] Modifications de fonctions non prises en compte
    Par Dardie dans le forum MATLAB
    Réponses: 1
    Dernier message: 12/06/2010, 12h45
  3. Fonction Init Javascript non prise en compte
    Par nkordiko dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 27/01/2010, 10h22
  4. Non prise en compte des custom error
    Par Neikeur dans le forum ASP.NET
    Réponses: 0
    Dernier message: 07/04/2009, 16h03
  5. Réponses: 1
    Dernier message: 19/10/2007, 08h53

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