Demande d'aide pour trier et afficher sur une page differente

nitish

XLDnaute Nouveau
Bonjour à toutes et tous,
j'aurais besoin d'aide sur excel 2007 et je vous remercie d'avance pour vos participations.

J'ai 3 colonnes de données (Date, Vendeur, Ref de l'Article) sur une feuille
Je souhaite trier et afficher sur une feuille differente, le nombre de fois chaque article est vendu et par vendeur.

le ref de l'article peut être n'importe quel numéro à quatre chiffres.

J'ai trouvé la solution de tableau croisé dynamique, mais ce qui m’intéresse est de le faire par des formules qui affiche en permanence sur une page différente et se met à jour automatiquement les résultats dès qu'une nouvelle donnée est ajouté sur la feuille principale.

Ci-joint un fichier exemple avec données à trier et le résultat attendu en page 2.

Si quelqu'un à une solution ou un méthode à me conseiller, je suis preneur.
Merci pour votre aide.



Bien cordialement
Nitish
 

Pièces jointes

  • exemple.xlsx
    9.1 KB · Affichages: 42
  • exemple.xlsx
    9.1 KB · Affichages: 48

Dranreb

XLDnaute Barbatruc
Re : Demande d'aide pour trier et afficher sur une page differente

Je me suis aperçu que ce n'était pas ce que vous vouliez.
C'est ça en fait :
VB:
Option Explicit

Private Sub Worksheet_Activate()
Dim M As Long, PlgDon As Range, TDon(), DicVend As Dictionary, Tk(), _
    Données As Collection, T(), L&, C&, RéfArt As SsGroup, Vendeur As SsGroup
For M = 1 To 12
   Set PlgDon = ColUti(ThisWorkbook.Worksheets(M).[B2:C2])
   If Not PlgDon Is Nothing Then TableauÀAjouter = PlgDon.Value
   Next M
TDon = TableUniqueCréée(CRSrc:=3)
Set DicVend = DicInvent(TDon, 1, ColDép:=2)
Tk = DicVend.Keys
Set Données = GroupOrg(TDon, 2, 1)
ReDim T(1 To Données.Count + 1, 1 To DicVend.Count + 1)
For C = 2 To UBound(T, 2)
   T(1, C) = Tk(C - 2)
   Next C
L = 1
For Each RéfArt In Données
   L = L + 1
   T(L, 1) = RéfArt.Id
   For Each Vendeur In RéfArt.Contenu
      C = DicVend(Vendeur.Id)
      T(L, C) = Vendeur.Count
      Next Vendeur, RéfArt
Me.UsedRange.ClearContents
Me.[A1].Resize(L, UBound(T, 2)).Value = T
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 112
Messages
2 085 411
Membres
102 885
dernier inscrit
AISSOU