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 :

Condition IF - Formule


Sujet :

Excel

  1. #1
    Invité
    Invité(e)
    Condition IF - Formule
    Bonjour,

    J'ai deux cellules.

    1: Liste déroulante avec Oui et Non
    2. Champ numérique

    Les conditions qui doivent être respectées sont :

    SI Cellule F4 = " " : Erreur

    SI Cellule F4 = "OUI" et Cellule G4 = "" : Erreur

    Si Cellule F4 = "NON et Cellule G4 est < > " " : Erreur

    J'ai traduis cela de cette façon dans une formule :

    Qu'est-ce qui me manque ?

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
     
    =SI(ET(F4 = "OUI ";G4 = "");VRAI;FAUX)


    Merci!

  2. #2
    Membre expert
    Hello
    en fait il te manque des OU à imbriquer.

  3. #3
    Responsable
    Office & Excel

    Salut.

    Code formule :Sélectionner tout -Visualiser dans une fenêtre à part
    =NON(OU(F4=" ";ET(F4="OUI";G4="");ET(F4="NON";G4<>" ")))


    Après, je n'ai pas compris ce que tu voulais dire par liste déroulante et champ numérique, ni en quoi ton test interfère avec ladite liste ou lesdites valeurs numériques.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Une fois pour toutes, je donne mon avis. Je ne vais pas le répéter à chaque message...
    Si je propose une solution générique sur votre solution spécifique, c'est parce que, fainéant de nature, je privilégie le réutilisable...
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  4. #4
    Invité
    Invité(e)
    Merci pour la formule.

    J'ai ajouté ces conditions :
    Est-ce que vous pouvez modifier la formule ? Merci!

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    SI F4 = " " : Erreur
    SI F4 = " " et G4 = "" : Erreur
     
    SI F4 = "OUI" et G4 = "" : Erreur
    SI F4 = "OUI" et G4 < > " " : OK
     
    Si F4 = "NON" et G4 est < > " " : Erreur
    Si F4 = "NON" et G4 est = " " : OK

  5. #5
    Responsable
    Office & Excel

    La deuxième condition ne sert à rien puisque la première l'englobe.

    Ma formule renvoie FAUX pour les formules qui doivent renvoyer Erreur. Cela ne sert à rien de compléter en disant que les autres sont OK.

    Si tu veux mettre cela dans une cellule, la formule pourrait devenir ceci: =SI(OU(F4=" ";ET(F4="OUI";G4=" ");ET(F4="NON";G4<>" "));"Erreur";"OK").


    Attention que pour la troisième condition, tu parles de Ga = "", alors que pour la quatrième, tu parles de G4=" " (avec un espace, donc).

    Note que "" est différent de " ". Si tu veux tester que la cellule est vide, tu dois utiliser "" (sans espaces), sinon tu testes qu'il y a uniquement un espace dans la cellule. Pense à adapter la formule donnée en fonction de cette remarque.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Une fois pour toutes, je donne mon avis. Je ne vais pas le répéter à chaque message...
    Si je propose une solution générique sur votre solution spécifique, c'est parce que, fainéant de nature, je privilégie le réutilisable...
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  6. #6
    Invité
    Invité(e)
    Avec la formule suivante, j'obtiens:

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
     
    =SI(OU(F4=" ";ET(F4="OUI";G4=" ");ET(F4="NON";G4<>" "));"OK";"Erreur")




    J'ai testé la formule Il manquerait une condition pour que la formule soit parfaite.

    Voici :

    1. SI F4 = OUI et G4 est différent de vide, la formule m'indique un erreur mais ce devrait être OK

    2. SI F4 = NON et G4 est différent de vide, la formule m'indique OK mais ce devrait être Erreur


    Merci!!

  7. #7
    Responsable
    Office & Excel

    Comme je te l'ai dit dans mon précédent message, c'est un problème de "" et de " ". Tu mélanges déjà les deux dans ta demande initiale. Si ce que tu veux tester est le fait qu'une cellule soit vide, tu dois utiliser "" et pas " ", mais comme tu as mélangé les deux, on ne sait finalement plus ce que tu souhaites obtenir. Vu tes dernières explications, je vais partir sur du vide partout (et donc aussi pour F4 à la première condition).

    Pour résumer tes conditions en français:
    F4 ne peut pas être vide;
    Si F4 = "OUI", G4 doit être rempli;
    Si F4 = "NON", G4 doit être vide.


    Si ces conditions te conviennent, voici la formule:
    Code formule :Sélectionner tout -Visualiser dans une fenêtre à part
    =SI(OU(F4="";ET(F4="OUI";G4="");ET(F4="NON";G4<>""));"Erreur";"Ok")


    Pour éviter les hésitations sur les "", " " est compagnie, je privilégierais l'utilisation d'une fonction d'Excel qui spécifie explicitement qu'une cellule est vide ou pas:
    Code formule :Sélectionner tout -Visualiser dans une fenêtre à part
    =SI(OU(ESTVIDE(F4);ET(F4="OUI";ESTVIDE(G4));ET(F4="NON";NON(ESTVIDE(G4))));"Erreur";"Ok")







    Dans la logique des conditions que tu énumères, on pourrait penser que F4 ne peut prendre comme valeur que OUI ou NON. Je suppose que c'est cela que tu voulais dire en parlant de ta liste déroulante. Je suppose donc que ce cas est géré en dehors de la formule.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Une fois pour toutes, je donne mon avis. Je ne vais pas le répéter à chaque message...
    Si je propose une solution générique sur votre solution spécifique, c'est parce que, fainéant de nature, je privilégie le réutilisable...
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  8. #8
    Invité
    Invité(e)
    Super ça fonctionne!

    Est-ce qu'on peut identifier les cellules en erreur en rouge ou ça ne se fait avec cette méthode ?

    Merci!

  9. #9
    Responsable
    Office & Excel

    Oui, tu peux utiliser la formule suivante:
    Code formule :Sélectionner tout -Visualiser dans une fenêtre à part
    =OU($F4="";ET($F4="OUI";$G4="");ET($F4="NON";$G4<>""))


    Pour ce faire, tu sélectionnes la ou les cellules concernées (dans l'illustration, j'ai choisi F4:G4, mais tu pourrais choisir F4:G25 si tu as envie), en faisant attention que la cellule active de ta sélection soit celle du coin supérieur gauche, et tu rédiges ta formule par rapport à cette cellule (F4 dans mon exemple). Les $ ont ici toute leur importance.




    Tu peux aussi, si tu gardes la formule dans la feuille pour indiquer Erreur ou OK, ne placer la mise en forme que sur cette cellule:



    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Une fois pour toutes, je donne mon avis. Je ne vais pas le répéter à chaque message...
    Si je propose une solution générique sur votre solution spécifique, c'est parce que, fainéant de nature, je privilégie le réutilisable...
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

###raw>template_hook.ano_emploi###