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 :

[VBA][E-07] Création d'une fonction personnelle "IsIncluded"


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Inscrit en
    Décembre 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 10
    Points : 7
    Points
    7
    Par défaut [VBA][E-07] Création d'une fonction personnelle "IsIncluded"
    Bonjour à tous,

    Je suis complètement novice en programmation VBA.
    Je souhaiterais créer une fonction personnelle qui a deux RANGEs comme INPUT et un RANGE boolean comme OUTPUT.

    INPUT :
    DATA_BIGRANGE qui est un "vecteur" d'environ 1500 lignes et qui contient des noms de pays.
    COUNTRY_SMALLRANGE qui est un vecteur d'environ 30 lignes dans lequel je choisis arbitrairement quelques pays.

    OUTPUT recherché:
    BOOLEAN_BIGRANGE qui est un vecteur de la même dimension que DATA_BIGRANGE ou j'ai des "1" lorsque le pays est inclus dans ma liste COUNTRY_SMALLRANGE... et des "0" lorsque ce pays ne fait pas partie de cette liste...

    Quelqu'un pourrait-il m'aider à écrire cette fonction?
    Merci d'avance!

    Bruno

  2. #2
    Membre averti
    Inscrit en
    Octobre 2008
    Messages
    273
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Octobre 2008
    Messages : 273
    Points : 323
    Points
    323
    Par défaut
    Bonjour,

    Donc, tu as 2 matrices et tu voudrais renvoyer une matrice avec des valeurs booléennes (1 ou 0) selon que ta valeur se trouve dans les 2 matrices ou non.

    C'est ça ?

    Si oui, je ne pense pas qu'il y ai besoin d'écrire une fonction. Une simple recherchev devrait suffire ?

  3. #3
    Futur Membre du Club
    Inscrit en
    Décembre 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    Merci pour ta réponse.

    J'aimerais ne pas devoir passer par un VLOOKUP car je voudrais utiliser le vecteur boolean résultat comme condition dans un SUMPRODUCT assez complexe.

    =SUMPRODUCT((condition 1)*...*(F_IsIncluded(DATA_BIGRANGE;COUNTRY_SMALLRANGE))*...*(condition n)*(Expression))

    Le problème que je rencontre avec les VLOOKUP c'est que je dois faire les recherchev une par une ...
    J'aimerais automatiser la recherchev de plusieurs pays (ceux présents dans ma liste SMALLRANGE) via une fonction personnelle avec une boucle FOR.

    Penses-tu pouvoir m'aider?
    Merci!

  4. #4
    Membre averti
    Inscrit en
    Octobre 2008
    Messages
    273
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Octobre 2008
    Messages : 273
    Points : 323
    Points
    323
    Par défaut
    Tu peux mettre les formats de tes données en entrée et le résultat souhaité ?

    Pas en fichier joint mais dans le corp de ton message

  5. #5
    Futur Membre du Club
    Inscrit en
    Décembre 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    DATA_BIGRANGE est un range (1colonne, 1500lignes) de string (nom de pays)

    COUNTRY_SMALLRANGE est un range (1colonne, 30lignes) de string (nom de pays)

    BOOLEAN_BIGRANGE est un range (1colonne, 1500lignes) de boolean où je désire des 1 qd le pays est inclus dans la liste smallrange et 0 qd le pays n'est pas dans la liste

    Est-ce bien cela que tu me demandais?

  6. #6
    Membre averti
    Inscrit en
    Octobre 2008
    Messages
    273
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Octobre 2008
    Messages : 273
    Points : 323
    Points
    323
    Par défaut
    J'ai du mal à saisir quel résultat tu attends.

    Une fonction personnalisée ne te renvoi qu'un résultat et non pas une plage.

    Tu attends 1 résultat qui sera soit 1 soit 0 pour une liste de pays. alors que dans cette liste, tu peux avoir des pays existants dans ta SMALLRANGE et d'autres non.

    Faut-il que ta fonction te donne 1 :
    -si tous les pays de ta DATA_BIGRANGE existent dans SMALLRANGE
    -si au moins un pays existe ?????


    Excuse moi mais je ne percute pas

  7. #7
    Futur Membre du Club
    Inscrit en
    Décembre 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    Pour me faciliter la vie, j'ai créé une feuille cachée avec un vecteur construit par recherchev...

    Un tout grand merci quand-même d'avoir essayé de comprendre mon problème!

    A bientôt.

    Bruno

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

Discussions similaires

  1. [XL-2007] Création d'une fonction (VBA)
    Par BLACKEYED05 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/03/2015, 18h26
  2. création d'une fonction min sur vba
    Par lilou31330 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 11/12/2012, 23h14
  3. création d'une fonction en VBA en fonction de mon exemple
    Par nicods dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 18/10/2012, 14h38
  4. [XL-2007] Excel VBA Création d'une fonction
    Par Tisbouch dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 08/05/2010, 19h22

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