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 :

Sectionner le top 5 des valeurs d'une colonne. [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Mars 2011
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Mars 2011
    Messages : 37
    Points : 33
    Points
    33
    Par défaut Sectionner le top 5 des valeurs d'une colonne.
    Bonjour,

    Je dispose d'un tableau excel contenant des extractions de dossiers créés avec entre autre une colonne "catégorie".
    Mensuellement nous extrayons le "Top 5" des catégories en fonction du nombre de demandes.

    Habituellement je créé un tableau croisé dynamique afin d'avoir un compte du nombre d'entrée par catégorie puis je trie en fonction du nombre d'entrées pour extraire mon "Top 5".

    Je cherche à automatiser le tout avec un peut de VBA mais j'avoue que je ne sais pas trop comment m'y prendre.

    J'ai pensé dans un premier temps à utiliser un tableau à 2 dimensions pour y stocker chaque valeur et son nombre d’occurrences et faire ensuite un trie pour extraire les 5 plus présentes mais je me demande s'il n'existe pas une fonction plus simple.

    Si par hasard quelqu'un aurai des informations à ce sujet je suis preneur.
    Par avance merci.

  2. #2
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  3. #3
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut
    bonsoir
    en vba
    un dico(Scripting dictionary) et un tableau te suffirai a faire ceci
    en utilisant la fonction du dico "exists"
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  4. #4
    Membre expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 869
    Points : 3 442
    Points
    3 442
    Billets dans le blog
    1
    Par défaut
    Bonsoir,

    Il existe une formule qui s'appelle : =RANG(Nombre;Référence;[Ordre]) qui donne le rang dans une liste de nombres exemple
    A1=12; A2=16; A3=4 alors si on fait la formule rang en colonne B :
    B1=2 ; B2=1 B3=3
    et on peut obtenir un rang dans l'autre sens et il gère les nombres en double ou triple ou il attribue le même rang on peut donc avoir rang 1 rang 1 rang 3 (et donc pas de 2 puisque 2 fois les rang 1.

    Je suis pas sur d'avoir été clair aussi je te conseille d'aller voir l'aide en ligne de la fonction

    @ bientôt
    Ils ne savaient pas que c'était impossible ... du coup ils l'ont fait (Mark Twain)

    n'oubliez pas de si les messages vous aide ou sont pertinents et de mettre quand cela est !

  5. #5
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    il existe aussi le "application.workheetfunction.large (arg1,arg2,arg3)

    dans F1
    Large Renvoie la k-ième plus grande valeur d'un ensemble de données. Vous pouvez
    utiliser cette fonction pour sélectionner une valeur en fonction de sa position
    relative. Par exemple, vous pouvez utiliser la méthode LARGE pour renvoyer la
    valeur la plus élevée, la deuxième ou la troisième valeur.
    ceci tester sur une variable tableau dument remplie par le range en question et traité par un dictionnaire pour les doublons avec nombre de presence dans les keys

    j'ai tester ca fonctionne
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Mars 2011
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Mars 2011
    Messages : 37
    Points : 33
    Points
    33
    Par défaut
    Merci à tous pour vos réponses, je ne connaissait pas la fonction dictionnaire et effectivement elle m'a permit de réaliser ce que je souhaitais très simplement.

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

Discussions similaires

  1. Décalage des valeurs d'une colonne
    Par Niazov dans le forum SAS Base
    Réponses: 8
    Dernier message: 09/07/2008, 17h28
  2. insertion des valeurs dans une colonne
    Par freestyler1982 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 24/01/2007, 16h38
  3. Maximum des valeurs d'une colonne
    Par cjacquel dans le forum Access
    Réponses: 1
    Dernier message: 19/01/2007, 17h25
  4. Réponses: 2
    Dernier message: 11/07/2006, 12h02
  5. quote dans des valeurs d'une colonne SET
    Par Jean Fi dans le forum Requêtes
    Réponses: 6
    Dernier message: 30/03/2006, 20h16

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