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 :

Travailler avec des message error à cause d'un #N/A


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Femme Profil pro
    Controlling & BI
    Inscrit en
    Mai 2013
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Controlling & BI
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2013
    Messages : 54
    Points : 42
    Points
    42
    Par défaut Travailler avec des message error à cause d'un #N/A
    Bonjour,

    je voudrais vérifier avec une macro si, dans une liste, il y a des #N/A . Je pensais à une boucle du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    range("A1:L100").select
    For each vcell in selection
    if ...la cellule contient un #N/A alors ...
    msgbox "Attention, ...."
    end if 
    next

    J'ai essayé avec "#N/A" comme valeur de cellule, mais ceci n'est pas reconnu comme text.
    J'ai essayé de travailler avec vbError(n°de l'erreur) mais je n'arrive pas. En plus, j'ai des cellules vides qui doivent être accepté par la boucle mais qui ont également crées des erreurs.

    Avez-vous une idée?

  2. #2
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Points : 2 553
    Points
    2 553
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    iserror(tonrange)
    application.worksheetfunction.iserror(tonrange)

  3. #3
    Membre du Club
    Femme Profil pro
    Controlling & BI
    Inscrit en
    Mai 2013
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Controlling & BI
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2013
    Messages : 54
    Points : 42
    Points
    42
    Par défaut
    je n'arrive pas à le faire marcher...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub YT()
    Dim answer As Variant
     
    Set myrange = Worksheets("TdB Macro").Range("J12:K13")
    answer = Application.WorksheetFunction.IsError(myrange)
    MsgBox answer
     
     
    End Sub
    si je mets autre chose que IsError (par exemple min dans un range de chiffres) tout va bien. Avec IsError il me dit "incompatibilité de type". Je pense que c'est le variant, mais qu'est-ce que je devrais mettre?

  4. #4
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Points : 2 553
    Points
    2 553
    Par défaut
    Il faut boucler sur toutes les cells de ton range et les tester une par une, à moins que tu ne fasses une fonction qui te teste pour tout le range

  5. #5
    Membre du Club
    Femme Profil pro
    Controlling & BI
    Inscrit en
    Mai 2013
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Controlling & BI
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2013
    Messages : 54
    Points : 42
    Points
    42
    Par défaut
    mince, j'ai oublié de la remettre...

    Comme ça c'est 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
    Sub CheckErreurs()
     
    Dim vcell As Variant
     
    Set myrange = Worksheets("TdB Macro").Range("C22:L90")
     
    For Each vcell In myrange
     
    If Application.WorksheetFunction.IsError(vcell) = True Then
     
    MsgBox "Attention, vos listes de noms d'onglets sont incomplètes! Vérifiez puis recommencez."
     
    End If
    Next
     
    End Sub
    Merci beaucoup.

  6. #6
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Points : 2 553
    Points
    2 553
    Par défaut
    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 CheckErreurs()
     
    Dim vcell As Variant
     
    Set myrange = Worksheets("TdB Macro").Range("C22:L90")
     
    For Each vcell In myrange
     
    If Application.WorksheetFunction.IsError(vcell) = True Then
     
    message = True
    MsgBox "Attention, vos listes de noms d'onglets sont incomplètes! Vérifiez puis recommencez."
    exit sub
     
    End If
    Next
     
    End Sub
    Si je peux me permettre.. Ca t'évitera 350 messages si tu venais à avoir plein d'erreurs

  7. #7
    Membre du Club
    Femme Profil pro
    Controlling & BI
    Inscrit en
    Mai 2013
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Controlling & BI
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2013
    Messages : 54
    Points : 42
    Points
    42
    Par défaut
    Oui, merci! Il n'a que dix possibilités dans ma liste mais tu as raison.

  8. #8
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Points : 2 553
    Points
    2 553
    Par défaut
    "C22:L90"

    69 lignes 10 colonnes... 690 msgbox ça peut être un peu chiant!

  9. #9
    Membre du Club
    Femme Profil pro
    Controlling & BI
    Inscrit en
    Mai 2013
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Controlling & BI
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2013
    Messages : 54
    Points : 42
    Points
    42
    Par défaut
    T'inquète, ce sont que 10,...
    Il y a une fonction dans les cellules (c'est pour ça que ça crée des #N/A). Et dans seulement dix cas la fonction ne peut pas trouver une valeur...
    Merci!

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

Discussions similaires

  1. Travailler avec des gifs animés
    Par Commodore dans le forum Imagerie
    Réponses: 1
    Dernier message: 13/07/2006, 15h58
  2. Réponses: 8
    Dernier message: 09/03/2006, 17h48
  3. Travailler avec des hexadécimaux
    Par LEK dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 18/09/2005, 04h24
  4. Réponses: 3
    Dernier message: 25/01/2005, 11h27
  5. Travailler avec des bits
    Par Vulvulune dans le forum Langage
    Réponses: 5
    Dernier message: 02/03/2003, 19h09

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