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 :

Gestions des doublons dans un classement de clients par CA


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    91
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Janvier 2008
    Messages : 91
    Points : 59
    Points
    59
    Par défaut Gestions des doublons dans un classement de clients par CA
    Bonjour,

    J'ai un petit souci a priori pas tres complique mais je ne trouve pas la solution.

    Voila j'ai une liste de 40 clients environ avec leurs chiffres d'affaires respectifs. J'ai besoin d'extraire les 15 plus gros clients dans cette liste. J'ai commencé par utilise la fonction LARGE en incrementant de 1 le 2e paramètre pour avoir les 15 premiers (ex: large(maplage,1), puis large(maplage,2) et ainsi de suite); mais il y a un souci avec les doublons (le nom du 1er client dans la liste des doublons et le montant correspondant apparait 2 fois -je n'ai pas essayer avec un "triplon" mais je suppose que c'est la meme chose, la valeur repetée n'apparaitra qu'une fois).

    J'ai essayé de contourner le probleme avec une petite macro, mais je me retrouve avec le meme souci:

    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
    Sub Top15clients()
    Dim cellule As Range, rang, i, limite As Integer
    limite = 15
     
    For Each cellule In Range("TopClients")
        For i = 1 To limite
            If cellule.Offset(0, 8) = i Then
              Range("TOP15").Cells(i) = cellule
              Range("TOP15").Cells(i).Offset(0, 1) = cellule.Offset(0, 1)
              Range("TOP15").Cells(i).Offset(0, 2) = cellule.Offset(0, 2)
            Exit For
            End If
        Next i
    Next cellule
    End Sub
    La plage TOP15 fait reference à l'endroit où je veux avoir mes 15 plus gros clients. Quelqu'un voit comment gerer le problème des doublons?

    Merci d'avance

  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
    Par défaut
    Bonsoir
    un filtre automatique ferait l'affaire

    Fichier:
    Feuil1: Colonne A: Clients, Colonne B, Chiffre d'affaire, Ligne 1: Titre des colonnes
    Feuil2: Résultat à partir de A1

    Code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub Macro2()
    Dim LastLig As Long
     
    Application.ScreenUpdating = False
    With Sheets("Feuil1")
        .AutoFilterMode = False
        LastLig = .Cells(.Rows.Count, "A").End(xlUp).Row
        With .Range("A1:B" & LastLig)
            .AutoFilter Field:=2, Criteria1:="15", Operator:=xlTop10Items
            .SpecialCells(xlCellTypeVisible).Copy Sheets("Feuil2").Range("A1")
        End With
        .AutoFilterMode = False
    End With
    End Sub
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

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

Discussions similaires

  1. Réponses: 11
    Dernier message: 03/05/2011, 08h02
  2. Réponses: 4
    Dernier message: 13/07/2010, 10h12
  3. Procédure stockée : gestion des doublons dans une table
    Par Mothership dans le forum Administration
    Réponses: 4
    Dernier message: 22/07/2009, 11h29
  4. [Toutes versions] Gestion des doublons dans une liste technique.
    Par Lorenzogazier dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 02/04/2009, 22h45

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