Comment faire un hit parade de vendeurs par produit ?
6 réponses
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)")
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)")
On 21 juil, 17:53, Nico <NON_AU_S...@turlututu.com> 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)")
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
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.
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.
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.
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)))
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 !!!
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)))
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
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.
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
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
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" <NON_AU_SPAM@turlututu.com> a écrit dans le message de news:
ehBSEq26IHA.3672@TK2MSFTNGP04.phx.gbl...
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.
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
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
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.
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.