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 :

Fonction excel comparaison [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
    Femme Profil pro
    Inscrit en
    Avril 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 41
    Par défaut Fonction excel comparaison
    Bonjour Krovax ! et Bonjour tout le monde,

    Alors c'est toujours pareil, je suis sur les fonctions d'excel, Voici mon probleme:

    J'ai ce tableau :
    j<30j 1
    30j<j<60j 0,8
    60j<j<90j 0,5
    j>90j 0,2

    et j'ai une valeur dans une cellule, par exemple 44.8
    et dans la cellule d'apres je souhaite que par rapport a ce tableau (qui est situé sur la feuille parametres) il s'affiche 0.8

    Je me doute bien que la formule va être une dérivée de celle-ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INDEX(Parametres!F11:F14;EQUIV(P16;Parametres!E11:E14;0))
    Mais il faudrait ajouter le fait de comparer.

    Quelqu'un sait comment je peux faire?

    Merci!

  2. #2
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Bonjour
    Regarde l'aide sur equiv en remplacant le 0 par un 1 ou un -1 tu cherche le plus grand inférieur ou le plus petit supérieur. (dépend de ton tableau)
    exemple
    avec -1 je croi
    30|1
    60|0.8
    ....

    Par contre tu es sr le forum pour les macros si tu as des questionsur les fonction excel je te conseil vivement lautre forum intitulé Excel

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut chouki60 et le forum
    Pas sûr de comprendre : je rappelle que comme tu es devant l'écran, on a du mal à lire par-dessus ton épaule, et que vu le temps les boules de cristal sont assez parasitées.

    Tu écris sur le forum dédié au VBA => je suppose que tu veux créer une FUNCTION, ou un SUB ? (Si c'est pour une fonction, pourquoi venir ici ?)
    j<30j 1
    30j<j<60j 0,8
    60j<j<90j 0,5
    j>90j 0,2
    Tableau un peu succint, ne correspondant pas à la formule. j'ai donc modifié comme suit :
    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
    19
    Function Cal_Coef(Delai As Range, Cel As Range)
    Application.Volatile
    Dim x
    x = Cel.Address(0, 0)
    If Not (IsNumeric(Cel)) Or Not (IsNumeric(Delai)) Then
        Cal_Coef = ""
        Exit Function
    End If
    Select Case Delai
        Case Is < 30
            Cal_Coef = Cel
        Case Is < 60
            Cal_Coef = Cel * 0.8
        Case Is < 90
            Cal_Coef = Cel * 0.5
        Case Else
            Cal_Coef = Cel * 0.2
    End Select
    End Function
    Deux paramètres "celule" :
    Delai : correspondant au nombre de jours
    Cel : correspondant à la valeur à multipliée par le coefficient :
    - moins de 30 jours => 1
    - de 30 à moins de 60 jours => 0,8
    - de 60 à moins de 90 jours => 0,5
    - à partir de 90 jours => 0,2
    Attention : les cellules faisant référence à Delai et Cel ne peuvent contenir que des valeurs numériques et la formule à inscrire sera de la forme : = Cal_Cef(A1;B1) avec A1 donnant le nombre de jour et B1 la valeur à laquelle affecter le coefficient.

    Si on travaillait par formule, il faudrait revoir les paramètres :
    E11 : 0 / F11 : 1
    E12 : 30 / F12 : 0,8
    E13 : 60 / F13 : 0,5
    E14 : 90 / F14 : 0,2
    avec une formule du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =si(P16="";0;RECHERCHE(P16;Parametres!E11:E14;Parametres!F11:F14))
    Là, ça ne donne que le coefficient (0, 1, 0,8, 0,5 et 0,2)
    A+

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

Discussions similaires

  1. [Toutes versions] VBA Fonction excel et concatenation de l'opérateur comparaison
    Par Heflav dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 16/02/2011, 10h28
  2. fonction excel
    Par semur dans le forum Excel
    Réponses: 4
    Dernier message: 24/01/2006, 17h41
  3. find() de std::set avec fonction de comparaison
    Par Biglo dans le forum SL & STL
    Réponses: 3
    Dernier message: 13/01/2006, 08h50
  4. [VBA][Débutante] Fonction Excel avec Boucle
    Par Inelukia dans le forum Macros et VBA Excel
    Réponses: 32
    Dernier message: 11/01/2006, 19h31
  5. Fonction excel: trouvé un numéro de ligne
    Par Nanid dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 28/09/2005, 14h52

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