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 :

Calcul de centiles


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Stagiaire base de données
    Inscrit en
    Mai 2018
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Stagiaire base de données

    Informations forums :
    Inscription : Mai 2018
    Messages : 23
    Par défaut Calcul de centiles
    Bonjour à tous,

    je rencontre un problème en vba qui va sûrement paraître extrêmement basique à beaucoup de monde mais ça fait depuis hier matin que je suis bloqué là dessus.

    Voilà, le but de mon code est d'attribuer une note à des clients en fonction du montant moyen de leurs achats, et j'ai décidé de définir les notes en fonction des centiles de tous les montants réunis ( tous les montants se trouvant dans la colonne B du fichier ). Par exemple, ceux dont le montant moyen sera inférieur au 20ème centile auront une note de 0,ceux avec un montant moyen inférieur au 40ème centile auront la note de 1 etc...

    Pour cela je souhaite attribuer la valeur de chaque centile à une variable pour chacun d'entre eux, puis attribuer les notes avec une boucle if. Mon problème est que je n'arrive pas à calculer ces centiles.
    J'ai essayé avec worksheetfunction.percentile mais je n'arrive pas à la faire fonctionner.

    est-ce que quelqu'un aurait une solution à me proposer ?

  2. #2
    Membre Expert Avatar de jerome.vaussenat
    Homme Profil pro
    Formateur Bureautique
    Inscrit en
    Janvier 2011
    Messages
    1 629
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur Bureautique
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 629
    Par défaut
    Salut,

    Normalement, ta fonction est bien la bonne.
    Je te propose une mise en pratique ci dessous.
    Dans la suite du code, je te propose de remplacer des If à la chaîne par une instruction conditionnelle qui me semble plus adaptés. Le SELECT CASE.
    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
    Sub Macro1()
    '
    'en supposant que tes achats soient dans la place B6 à B15
    cent4 = WorksheetFunction.Percentile(Range("b6:b15"), 0.4)
    cent5 = WorksheetFunction.Percentile(Range("b6:b15"), 0.5)
    cent6 = WorksheetFunction.Percentile(Range("b6:b15"), 0.6)
     
    Select Case achat
        Case Is < cent4
            vaeur = 0
        Case Is < cent5
            vaeur = 1
        Case Is < cent6
            vaeur = 2
    End Select
    End Sub
    En espérant que cela te permettra d'avancer

  3. #3
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    SAlut

    Pourquoi passer par VBA pour faire ça? Pourquoi ne pas simplement calculer cette note dans la colonne du tableau?

    Quelque chose comme ça

    Nom : Centile.png
Affichages : 1202
Taille : 44,2 Ko

    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  4. #4
    Membre averti
    Homme Profil pro
    Stagiaire base de données
    Inscrit en
    Mai 2018
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Stagiaire base de données

    Informations forums :
    Inscription : Mai 2018
    Messages : 23
    Par défaut
    Merci jerome, je ne connaissais pas le select case, il est vrai que c'est pratique ! Merci pour ton aide

    Qwazerty, je veux tout faire en vba car le but est qu'en lançant la macro, tout se fasse tout seul sans avoir besoin de rentrer de formules dans le tableau. Ainsi, si quelqu'un d'autre doit faire cette analyse dans le futur, il n'aura plus qu'à lancer la macro et tout se fera tout seul.

  5. #5
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Salut

    Même vidés de leur contenu, les tableaux structurés conservent les formules de colonne Un futur utilisateur n'aurait rien à faire de plus

    Pour la liste des noms sans doublon du tableau central, elle peut être réalisée via une formule matricielle, tu trouveras, si cela t'intéresse, des exemples sur le net.

    Ceci dit, tu feras bien comme il te plaira

    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

Discussions similaires

  1. [AC-2013] Calcul 90ème centile liste notes différentes classes
    Par ADDCP dans le forum Access
    Réponses: 18
    Dernier message: 13/12/2015, 00h42
  2. Calculer le rang centile
    Par punisher999 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 17/11/2015, 03h52
  3. Calcul percentile et centile avec Visual Basic 6.0
    Par moirs555 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 22/08/2011, 14h24
  4. Algorithme de calcul du centile ou percentile ?
    Par barbuslex dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 05/06/2008, 16h10
  5. Calculer le centile d'un tableau
    Par smiles75 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 06/01/2008, 18h42

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