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 : Selection des 5 plus grandes valeurs d'une colonne..


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 243
    Points : 86
    Points
    86
    Par défaut VBA_E : Selection des 5 plus grandes valeurs d'une colonne..
    salut a tous

    j'ai un pti soucis...voila:


    j'ai une macro su excel qui doit prendre les colonne d'une feuille

    et selectionner les 5 plus grandes valeurs.
    ma boucle va donc
    selectionner la plus grande valeur de la colonne 2 et la copier elle ainsi que le titre de cette ligne dans un autre classeur

    j'utilise

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    For x = 1 To 5    'boucle pour récupérer les 5 valeurs les plus eleveées
     
      On Error GoTo a  ' gestion de l'erreur dans le cas ou la colonne considérée
                       ' contient moins de 5 valeurs
     
      Nombre = Application.WorksheetFunction.Large(Columns(i), x)
      v = Application.Match(Nombre, Columns(i), 0)
      Ligne = Application.Match(Nombre, Columns(i), 0)
      market = f1.Cells(Ligne, 1)
      titre1 = f1.Cells(1, i).Value
    tout se passe bien quand les valeurs sont distictes mais ya un pb dés que il ya 2 plus grandes valeurs identiques

    ex

    jai

    a b c

    aa 2
    bb 2
    cc 1


    dans ce cas il mecopie (aa 2) comme la plus grande valeur et (aa 2 ) comme la deuxieme plus grande valeur au lieu de (bb 2 )...

    en éspérant avoir été clair...Merci de votre aide

  2. #2
    Membre actif Avatar de marsupilami34
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    575
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 575
    Points : 262
    Points
    262
    Par défaut
    Bonjour,
    Ce que tu peux faire c'est de rajouter une 3° colonne ou il n'y a par exemple que des 0 et lorsque tu l'as traité tu la passe à 1. Et lorsque tu fais un test tu vérifie d'abord que ta troisème colonne est à 0

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 243
    Points : 86
    Points
    86
    Par défaut
    ouais pas bete du tout

    mais mes fichiers excel sont générées par une base de donnée...
    j'aurais préféré ne pas toucher aux requetes...

  4. #4
    Membre actif Avatar de marsupilami34
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    575
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 575
    Points : 262
    Points
    262
    Par défaut
    Donc si tu ne veux pas toucher le fichier Excel, tu peux toujours créer un tableau à partir de ce fichier

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 243
    Points : 86
    Points
    86
    Par défaut
    oui tout à fait....je vais voir ca...

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 243
    Points : 86
    Points
    86
    Par défaut
    il doit bien exister une solution plus directe que de construire des tableaux
    j'en ai jamais utilisé en plus

  7. #7
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    bonjour

    v = Application.Match(Nombre, Columns(i), 0)
    la fonction Match ne peut renvoyer que la premiere valeur trouvée

    comme le dit Marsupilami34, la meilleure solution est de
    créer un tableau
    le trier sur ta colonne i
    et récupérer les 5 plus grandes valeurs


    michel

Discussions similaires

  1. [AC-2010] Selection de n plus grandes valeurs avec 2 champs
    Par benoguiz dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 26/03/2015, 17h21
  2. Réponses: 3
    Dernier message: 22/03/2013, 11h44
  3. Selection des n plus grands enregistrements
    Par Antichoc dans le forum DB2
    Réponses: 10
    Dernier message: 19/05/2009, 09h26
  4. [SQL SELECT] Chercher la plus grande valeur?
    Par zoltix dans le forum Langage SQL
    Réponses: 2
    Dernier message: 29/03/2007, 09h15
  5. vba-Excel-Plus grande valeur d'une colonne
    Par VBBBA dans le forum Macros et VBA Excel
    Réponses: 33
    Dernier message: 08/08/2006, 10h50

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