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 :

Comparaison de valeur par rapport à une référence et insertion d'un statut OK ou NOK [XL-97]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 140
    Points : 56
    Points
    56
    Par défaut Comparaison de valeur par rapport à une référence et insertion d'un statut OK ou NOK
    Bonjour à tous,

    Je suis vraiment débutant en VBA excel, je n'y me connais vraiment presque rien.

    Et je dois dans le cadre d'un travail, réaliser une comparaison de 5 nombres par rapport à une référence.

    Si ces nombres sont supérieur à cette référence, alors je dois retourné dans une autre cellule un statut NOK, ou si cette référence est inférieur, retourné OK.

    Merci d'avance pour votre aide,

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur VBA Access
    Inscrit en
    Avril 2006
    Messages
    1 109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur VBA Access

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 109
    Points : 1 535
    Points
    1 535
    Par défaut
    Bonjour,

    Citation Envoyé par Kartoon67
    Si ces nombres sont supérieur à cette référence, alors je dois retourné dans une autre cellule un statut NOK, ou si cette référence est inférieur, retourné OK.
    Euh.... tu t'as gouré là !? Tu as écrit "pile je gagne, face tu perds"
    Si les 5 nombres sont supérieurs à la référence alors leur somme est supérieur à 5 * la référence.

  3. #3
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 140
    Points : 56
    Points
    56
    Par défaut
    Si CHACUN des 5 nombres est supérieur à la référence alors le statut est NOK.
    Un comparatif entre le 1er nombre et la référence, le second nombre et la référence etc...

  4. #4
    Membre expérimenté
    Homme Profil pro
    Développeur VBA Access
    Inscrit en
    Avril 2006
    Messages
    1 109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur VBA Access

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 109
    Points : 1 535
    Points
    1 535
    Par défaut
    D'accord Kartoon67,

    un exemple : si la référence est supérieure à chacun des 5 nombres alors renvoyer "OK", si chacun des 5 nombres est supérieur à la référence alors renvoyer "NOK".
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Cellule=Iif(a>Ref And b>Ref And c>Ref And d>Ref And e>Ref,"NOK",Iif(5*Ref>a+b+c+d+e,"OK",""))
    Le Iif(,,) en VBA correspond ou SI(,,) Excel.

  5. #5
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 140
    Points : 56
    Points
    56
    Par défaut
    Dans votre exemple, vos a,b ... sont des nombres fixe? Car en faite mes 5 nombres sont dans des cellules et je voudrais les utiliser pour faire mes comparatif.

    Donc à la place de a,b je met la référence de la cellule?

  6. #6
    Membre confirmé
    Inscrit en
    Décembre 2003
    Messages
    434
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 434
    Points : 547
    Points
    547
    Par défaut
    Salut,

    Avec une formule peut etre:
    Avec de A2 à A6 les valeurs, en B2 la reference
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(SOMMEPROD((A2:A6>B2)*1)=5;"NOK";"OK")
    ++
    Minick

  7. #7
    Membre expérimenté
    Homme Profil pro
    Développeur VBA Access
    Inscrit en
    Avril 2006
    Messages
    1 109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur VBA Access

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 109
    Points : 1 535
    Points
    1 535
    Par défaut
    Oui, Kartoon tu remplaces a,b,c,d,e,Ref, Cellule par les coordonnées de tes cellules. Où a,b,c,d,e sont les 5 nombres à tester, Ref la référence et Cellule la cellule d'affichage du test.

    Maintenant, l'exemple donné n'est effectivement pas tout à fait correcte.
    c'est plutôt un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cellule=Iif(a>Ref And b>Ref And c>Ref And d>Ref And e>Ref,"NOK",Iif(Ref>a And Ref>b And Ref>c And Ref>d And Ref>e,"OK",""))

  8. #8
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 140
    Points : 56
    Points
    56
    Par défaut
    Ok merci.

    Ce matin j'ai essayé de faire des tests sous l'utilitaire VBA mais j'observai des erreurs. Car en faite je c'est pas vraiment comment crée ma macro sous VBA pour quel soit valide, c'est la première fois que j'effectue ce genre de manipulation.

    Je vais essayer de me renseigner et trouver un peu comment faire.

  9. #9
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 140
    Points : 56
    Points
    56
    Par défaut
    Bonjour,

    J'ai éxecuté le code de la macro et cela fonctionne bien.

    Par contre j'ai un petit soucis avec mon nouveau code. Comme je vous l'avais expliquer, je souhaite retourné un souhaite de comparaison entre des valeurs.

    J'ai UNE valeurs de référence, exemple "0,5", ce chiffre est soit positif ou négatif, cela je le définirais dans le code, une fois lorsqu'il est positif, l'autres fois lorsqu'il est négatif.

    Mes valeurs de comparaison sont des nombre soit positif ou négatif.

    En algorithme mon programme donne ça :

    Si Valcomparé > ValRéférence alors renvoi statut NOK
    Si -Valcomparé < -ValRéférence alors renvoi statut NOK

    Si ValRéférence > Valcomparé alors renvoi statut NOK
    Si -ValRéférence < -Valcomparé alors renvoi statut NOK


    J'ai crée un bout de code mais il ne me retourne pas de résultat.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub Macro_statut()
    Range("B37") = IIf(Range("D27") > Range("C15") Or Range("D28") > Range("C15") Or Range("D29") > Range("C15") Or Range("D30") > Range("C15") Or Range("D31") > Range("C15") Or Range("D27") < (-Range("C15")) Or Range("D28") < (-Range("C15")) Or Range("D29") < (-Range("C15")) Or Range("D30") < (-Range("C15")) Or Range("D31") < (-Range("C15")), "NOK", IIf(Range("C15") > Range("D27") Or Range("C15") > Range("D28") Or Range("C15") > Range("D29") Or Range("C15") > Range("D30") Or Range("C15") > Range("D31") Or (-Range("C15")) < Range("D27") Or (-Range("C15")) < Range("D28") Or (-Range("C15")) < Range("D29") Or (-Range("C15")) < Range("D30") Or (-Range("C15")) < Range("D31"), "OK", ""))
    End Sub
    Merci d'avance pour votre aide,

  10. #10
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 140
    Points : 56
    Points
    56
    Par défaut
    En faite, le bout de code est bon, j'avais insérer de mauvais paramètres.

    Merci pour votre aide.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/11/2009, 15h13
  2. Réponses: 4
    Dernier message: 09/10/2008, 08h55
  3. Afficher une valeur par rapport à une autre valeur
    Par alexiisme dans le forum Modélisation
    Réponses: 5
    Dernier message: 24/08/2007, 12h43
  4. Réponses: 9
    Dernier message: 20/06/2006, 18h47
  5. Réponses: 4
    Dernier message: 24/01/2006, 13h18

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