Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comment faire un hit parade de vendeurs par produit ?

6 réponses
Avatar
Nico
Bonjour à toutes et tous.

J'ai un fichier de données qui se présente en 3 colonnes : Produit,
vendeur et CA. Ce fichier reprend toutes les ventes réalisées sur une
période ce qui signifie que le duo "Produit-vendeur" peut apparaître
plusieurs fois dans ce listing.

Je cherche à sortir la liste des 5 meilleurs vendeurs (qui ont le plus
gros CA) par produits par le biais d'une macro et je sèche un peu...

J'ai commencé une macro "un peu usine à gaz" (cf. ci-dessous) où :
- dans un premier temps je crée une collection (pour éviter les
doublons) reprenant les vendeurs (code tiré du site de F. SEGUINEAU),
- dans un second temps je lance un SOMMEPROD pour récupérer le cumul du
CA généré par vendeur (les noms NOM_VENDEUR, PRODUIT et MONTANT
représentent des plages de cellules définies dans mon listing)

L'objectif étant ensuite de remplir un Array de tous ces résultats.
Array que je pourrais trier pour ressortir que les 5 premiers éléments...

MAIS j'ai déjà un souci au deuxième niveau car la ligne du Evaluate
SUMPRODUCT me renvoie une erreur Indice 13 et je ne vois pas où peut
être le problème...

Pouvez-vous m'aider SVP ? Si par ailleurs vous avez une solution plus
simple que mon machin, n'hésitez surtout pas !!!

Merci par avance.

NICOLAS

Sub HitParade()
Dim UniqueList As New Collection
Dim Vendeurs
Dim i As Long
Dim Nom As Variant

Vals = Range("C2:C19").Value
On Error Resume Next
For i = 1 To UBound(Vals, 1)
UniqueList.Add Vendeurs(i, 1), CStr(Vals(i, 1))
Next i
On Error GoTo 0

Nom = UniqueList(1)
x = Evaluate("SUMPRODUCT((NOM_VENDEUR=" & Nom &
")*(PRODUIT=""1-EN"")*MONTANT)")

MsgBox Nom & " : " & x

End Sub

6 réponses

Avatar
JB
Bonjour,

http://boisgontierjacques.free.fr/fichiers/Matriciel/Top5Egalite.xls

JB


On 21 juil, 17:53, Nico wrote:
Bonjour à toutes et tous.

J'ai un fichier de données qui se présente en 3 colonnes : Produit,
vendeur et CA. Ce fichier reprend toutes les ventes réalisées sur une
période ce qui signifie que le duo "Produit-vendeur" peut apparaître
plusieurs fois dans ce listing.

Je cherche à sortir la liste des 5 meilleurs vendeurs (qui ont le plus
gros CA) par produits par le biais d'une macro et je sèche un peu...

J'ai commencé une macro "un peu usine à gaz" (cf. ci-dessous) où :
- dans un premier temps je crée une collection (pour éviter les
doublons) reprenant les vendeurs (code tiré du site de F. SEGUINEAU),
- dans un second temps je lance un SOMMEPROD pour récupérer le cumul du
CA généré par vendeur (les noms NOM_VENDEUR, PRODUIT et MONTANT
représentent des plages de cellules définies dans mon listing)

L'objectif étant ensuite de remplir un Array de tous ces résultats.
Array que je pourrais trier pour ressortir que les 5 premiers élément s...

MAIS j'ai déjà un souci au deuxième niveau car la ligne du Evaluate
SUMPRODUCT me renvoie une erreur Indice 13 et je ne vois pas où peut
être le problème...

Pouvez-vous m'aider SVP ? Si par ailleurs vous avez une solution plus
simple que mon machin, n'hésitez surtout pas !!!

Merci par avance.

NICOLAS

Sub HitParade()
   Dim UniqueList As New Collection
   Dim Vendeurs
   Dim i As Long
   Dim Nom As Variant

   Vals = Range("C2:C19").Value
   On Error Resume Next
   For i = 1 To UBound(Vals, 1)
     UniqueList.Add Vendeurs(i, 1), CStr(Vals(i, 1))
   Next i
   On Error GoTo 0

Nom = UniqueList(1)
x = Evaluate("SUMPRODUCT((NOM_VENDEUR=" & Nom &
")*(PRODUIT=""1-EN"")*MONTANT)")

MsgBox Nom & " : " & x

End Sub


Avatar
Nico
Bonsoir JB,

Merci pour ton fichier qui me montre l'utilisation des INDEX EQUIV, mais
cela ne me convient pas dans le cas présent.

En effet, ton exemple ne me permet pas de gérer la condition "produit"
(je cherche les 5 meilleurs vendeurs par produits) et nécessite que le
CA par vendeur et par produit soit déjà calculé.
Pour cette dernière condition ce n'est pas le cas car mon fichier et un
listing exhaustif de vente : un vendeur peut donc apparaitre plusieurs
fois pour le même produit avec un CA différent à chaque fois.
Exemple

Famille Vendeur CA
Prod A Toto 1500
Prod B Titi 2000
Prod A Titi 1000
Prod A Toto 3000
...

Pour le produit A le meilleur vendeur est Toto avec un CA de 4500 devant
Titi avec un CA de 1000

Merci encore pour l'attention que tu as accordé à ma question.

NICOLAS

JB a écrit :
Bonjour,

http://boisgontierjacques.free.fr/fichiers/Matriciel/Top5Egalite.xls

JB



Avatar
Modeste
Bonsour® Nico avec ferveur ;o))) vous nous disiez :

J'ai un fichier de données qui se présente en 3 colonnes : Produit,
vendeur et CA. Ce fichier reprend toutes les ventes réalisées sur une
période ce qui signifie que le duo "Produit-vendeur" peut apparaître
plusieurs fois dans ce listing.

Je cherche à sortir la liste des 5 meilleurs vendeurs (qui ont le plus
gros CA) par produits par le biais d'une macro et je sèche un peu...



pas besoin de macro !!!!
le TCD est fait pour ça !!!


--
--
@+
;o)))
Avatar
Nico
Bonsoir Modeste,

Il existe en effet le TCD. J'ai d'ailleurs testé. Cela fonctionne mais
comme je n'ai besoin que des 5 premiers vendeurs par famille de produit
(c'est pour un tableau de bord commercial), je cherchais une solution
qui aille directement "pomper" les informations dans ma matrice de base
(d'où le SOMMEPROD de la macro) plutôt que de passer par un TCD
intermédiaire.

Si je ne trouve pas de soluce à ma problématique d'erreur type 13, je
prendrai cette option.

Merci de ta réponse.
NICOLAS
Avatar
Ellimac
Bonjour,

Clic droit sur ton champ Vendeur dans ton TCD "Paramètres de champ..." puis
"Avancé"
"Affichage automatique des 10 premiers" choisir "Activé" puis le nombre.

Camille

"Nico" a écrit dans le message de news:

Bonsoir Modeste,

Il existe en effet le TCD. J'ai d'ailleurs testé. Cela fonctionne mais
comme je n'ai besoin que des 5 premiers vendeurs par famille de produit
(c'est pour un tableau de bord commercial), je cherchais une solution qui
aille directement "pomper" les informations dans ma matrice de base (d'où
le SOMMEPROD de la macro) plutôt que de passer par un TCD intermédiaire.

Si je ne trouve pas de soluce à ma problématique d'erreur type 13, je
prendrai cette option.

Merci de ta réponse.
NICOLAS



Avatar
Nico
Merci pour la manip'
NICOLAS

Ellimac a écrit :
Bonjour,

Clic droit sur ton champ Vendeur dans ton TCD "Paramètres de champ..." puis
"Avancé"
"Affichage automatique des 10 premiers" choisir "Activé" puis le nombre.

Camille