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

Excel Discussion :

Comparaison "SI" d'une cellule à une valeur numérique [XL-2007]


Sujet :

Excel

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    191
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2008
    Messages : 191
    Points : 200
    Points
    200
    Par défaut Comparaison "SI" d'une cellule à une valeur numérique
    Bonjour à tous,

    j'ai un petit souci dans un classeur Excel que je n'arrive pas à résoudre ... En fait, j'utilise la fonction SI() afin d'effectuer une comparaison numérique du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SI(FEUILLE1!$A$1=10;"VRAI";"FAUX")
    Ma cellule A1 de FEUILLE1 est au format numérique, mais pourtant la fonction SI me retourne toujours un résultat faux. J'ai analysé le comportement d'Excel lors de l'évaluation de la formule et Excel prend la valeur de la cellule A1 qu'il converti en texte. J'obtient donc une comparaison de la forme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SI("10"=10;"VRAI";"FAUX")
    Ce qui est toujours faux puisque c'est deux formats différents. Je voudrais simplement qu'Excel reconnaisse la cellule A1 comme étant numérique pour que la formule SI puisse faire son travail... Il s'agit probablement d'une erreur tout bête, mais je dois avouer que je ne la vois pas...

    Merci d'avance pour votre aide,
    al_bert

  2. #2
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Bonjour,

    La cellule est probablement au format numérique mais le contenu l'est-il?

    Pour le savoir, vérifie si l'alignement horizontal n"est pas forcé et regarde si ton nombre est à gauche ou à droite.

  3. #3
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 938
    Points : 28 935
    Points
    28 935
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Pour compléter la réponse d'AlainTech, et si la cellule A1 doit rester alphanumérique, en multipliant par 1 le contenu de $A$1, le test sur "10" donnera "VRAI"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SI(FEUILLE1!$A$1*1=10;"VRAI";"FAUX")

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    191
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2008
    Messages : 191
    Points : 200
    Points
    200
    Par défaut
    Bonjour,

    tout d'abord merci à vous deux pour vos réponses! Merci du truc corona, ça fonctionne en effet lorsque je multiplie par "1".

    J'ai vérifié et l'alignement est forcé à droite. Lorsque j'enlève cette contrainte, le nombre se déplace à gauche, c'est donc du contenu alphanumérique... Je sais le contenu de ma cellule A1 provient elle-même d'une fonction de type:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(B2="O";15;IF(B2="T";16;IF(B2="N";14;"")))
    Est-ce que le problème pourrait venir d'ici? Bien que les nombres soit en "nombre" et non en texte, je me demande si la dernière condition fausse, "", pourrait causer ce problème...

    Je dois avouer que je préfèrerais régler le problème à la source car cette cellule est utilisée quelques centaines de fois par la suite dans d'autres fonctions logiques...

    Merci encore pour votre temps,
    al_bert

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    191
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2008
    Messages : 191
    Points : 200
    Points
    200
    Par défaut
    Bonjour,

    j'ai trouvé la solution alors je la post ici pour les intéressés! En fait, c'est que les fonctions "textes" comme SI par exemple retournent toujours du texte. Il faut donc employer la fonction n() qui converti le résultat en un format numérique. Il faut simplement faire attention à la perte d'information puisque n() retourne "0" dès que la valeur est non numérique.

    Merci encore pour votre temps!
    al_bert

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 938
    Points : 28 935
    Points
    28 935
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Il me semble que ce n'était pas la question initiale
    SI(FEUILLE1!$A$1=10;"VRAI";"FAUX")
    ou
    SI("10"=10;"VRAI";"FAUX")
    Avec la fonction N() si la cellule contenant une valeur numérique est considérée par Excel comme Alpha (Par exemple dans le cas d'une apostrophe précédant la valeur '10), N() renverra 0
    donc la formule
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(N(A2);"VRAI";"FAUX")
    Renverra FAUX
    Alors que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(NON(ESTERR(A2*1<>0));"Vrai";"Faux")
    Renverra VRAI

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    191
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2008
    Messages : 191
    Points : 200
    Points
    200
    Par défaut
    Bonjour,

    en effet, désolé de la confusion, je dois avouer que ma question n'était ps très claire C'est que ma fameuse cellule FEUILLE1!$A$1 était également le résultat d'une fonction SI du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(A7="OUI";FEUILLE2!B57;FEUILLE2!C58)
    (où les cellules B57 et C58 sont toujours numériques). Et c'est le résultat contenu dans cette cellule A1 qui devait être numérique pour que mon test puisse comparer des nombres entre eux et non du texte avec un nombre (comme le cas initial "10"=10 avant que je n'ajoute la fonction n() à cellule A1).

    Désolé encore pour la confusion et la non clarté, la fatigue fait des ravages
    Merci encore pour votre temps et votre aide,
    al_bert

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

Discussions similaires

  1. [XL-2010] Copie d'un tableau d'une feuille à une autre : une cellule ne se recopie pas
    Par mchouv dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 25/07/2014, 12h47
  2. Réponses: 2
    Dernier message: 20/12/2013, 14h13

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