Gestion des erreurs en VB Excel

pier2late Messages postés 1 Date d'inscription   Statut Membre -  
Polux31 Messages postés 7219 Statut Membre -
Bonjour,
j'ai créé une macro en VB qui cherche les résultats de formule d'un tableau original, dans une autre feuille (cible). La majorité des réponses à ces formules sont des #N/A... Et donc, je n'aurais pas à les chercher! C'est là que le bas blesse...
Je ne parviens pas à gérer l'erreur "running time error 13" donnée par VB: je cherche donc dans la feuille cible une donnée que je sais ne pas trouver. Cela prend beaucoup de temps car il y a parfois 25.000 cellules à contrôler.
Par contre, quand la recherche de #N/A s'effectue dans la feuille cible (et qu'elle n'est pas trouvée), l'erreur est gérée convenablement...?
Y a-t-il un moyen d'éviter de considérer le résultat d'une cellule s'il vaut #N/A? Ensuite, le programme reprend et contrôle la cellule suivante?
Les données sont de type aléatoires: alphanumériques avec ponctuation...

merci pour votre savoir-faire et à+

pier2late
Configuration: Mac OS X

3 réponses

  1. Polux31 Messages postés 7219 Statut Membre 1 204
     
    bonjour,

    il faut mettre en début de macro :

    On Error Resume Next
    


    Ensuite tu peux afficher un message ou autre chose en cas d'erreur en mettant ça en fin de macro :

    If Err <> 0 Then
       MsgBox "Erreur dans le déroulement de la macro",,"Message Erreur"
    End If
    


    ;o)

    polux
    1
  2. pier2late
     
    bonjour et merci pour la réponse.
    Ce bout de code me permet de passer outre l'erreur lors de la recherche infructueuse. ça fonctionne bien!
    Mais, Excel perd beaucoup de temps à chercher cette donnée inexistante. Je voudrais donc accélérer en faisant passer la recherche si le contenu de la cellule est #N/A. C'est possible?

    merci

    pier2late
    1
  3. Polux31 Messages postés 7219 Statut Membre 1 204
     
    Bonsoir,

    Si tu as 25 000 cellules à tester, c'est normal que ça soit long et il faut bien les tester toutes. Excel n'est pas une base de donnée ... c'est l'inconvénient...

    ;o)

    polux
    1