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 :

Tester une valeur avec #N/A possible [XL-2000]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 20
    Par défaut Tester une valeur avec #N/A possible
    Bonjour,
    Sans doute basique mais je débute...

    Sur saisie dans une cellule [B2],
    Une formule SI me délivre soit une chaine de caractères, soit un #N/A en [B5].
    Je voudrais tester si la valeur en [B5] est #N/A, et dans ce cas positionner automatiquement le curseur en [B13], question d'ergonomie...

    Voici mon code, suis-je loin du compte ?
    Est-ce "#N/A" qui a une fonction particulière, et qui rend ma macro caduque ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Worksheet_Change(ByVal target As Range)
    If Intersect(target, [B2]) Is Nothing Then Exit Sub
       Dim LLL As String
       Range("B5").Select
       LLL = Selection.Value
       If LLL = "#N/A" Then
       Range("B13").Select
    Et suis-je obligé de passer par une variable (ici LLL) ou ce qui suit est sensé fonctionner ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Range(B5).Value = "#N/A" Then
    Parce que là je rame...
    Je vous jure, je cherche dans les tutos avant de poster !

    Antipod
    (d'avance, si je converse à contre-temps, normal je suis aux antipodes...)

  2. #2
    Membre Expert Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Par défaut
    bonjour,

    une première solution toute simple serait un truc dans le genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Application.WorksheetFunction.IsNA(Range("B5")) Then MsgBox "Dites monsieur, il y a une erreur qui n'est pas juste là!"
    il y a surement d'autre possibilités, c'est la seule qui me viens là tout de suite!

    Mayekeul

  3. #3
    Membre éclairé Avatar de Yolak
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    341
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Vosges (Lorraine)

    Informations forums :
    Inscription : Mars 2007
    Messages : 341
    Par défaut
    Bonjour,

    Pour rester dans ton résonnement, tu peux utiliser

    au lieu de Et si je peux me permettre un conseil:
    Ecris :Plutôt que de faire le Range("B5").Select
    Je trouve ça plus propre et en plus c'est plus rapide!

  4. #4
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 20
    Par défaut [Résolu]
    J'ai essayé avec succès la jolie ligne de Mayekeul. Comment trouver ce genre de
    "Application.WorksheetFunction.IsNA" quand on débute ???

    Plus abordable, le "LLL = Range("B5").Text" de Yolak me plait bien, et je cours voir la doc pour comprendre la différence fonctionnelle entre Value et Text.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Range("B5").Text = "#N/A" Then...
    fonctionne aussi, sans avoir à définir la variable (LLL dans mon cas).

    Merci à tous les deux.

    Antipod
    (d'avance, si je converse à contre-temps, normal je suis aux antipodes...)

  5. #5
    Membre éclairé Avatar de Yolak
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    341
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Vosges (Lorraine)

    Informations forums :
    Inscription : Mars 2007
    Messages : 341
    Par défaut
    Citation Envoyé par Antipod Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Range("B5").Text = "#N/A" Then...
    fonctionne aussi, sans avoir à définir la variable (LLL dans mon cas).
    Biensûr mais c'est moins lisible, moins propre et moins rapide!
    Enfin, ça c'est mon avis, il est contestable...

    Ravi d'avoir pu t'aider!

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

Discussions similaires

  1. tester une valeur numérique (réelle) avec jquery
    Par alfred5 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 03/08/2013, 17h14
  2. [vb.net] tester une valeur nulle de maniere elegante
    Par graphicsxp dans le forum Windows Forms
    Réponses: 5
    Dernier message: 22/08/2005, 15h36
  3. [TP] Afficher une valeur avec outtext
    Par Bouilla dans le forum Turbo Pascal
    Réponses: 4
    Dernier message: 06/03/2005, 09h57
  4. Retourner une valeur avec une fonction
    Par stephtbest dans le forum ASP
    Réponses: 4
    Dernier message: 31/10/2003, 16h37

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