Supprimer doublons

Bonjour à tous,

Je dois calculer à partir d'Excel le nombre de Programmes de lancements et le nombre de produits associés à ces programmes pour une année donnée.

A partir de mon fichier

data

, j'ai accès :

  • au type de lancement : je recherche les NEW
  • au code du programme : code à 5 chiffres
  • le code du produit : code à 9 chiffres
  • le nom du programme qui contient la date à laquelle le programme a été créé (en général 1 an à l'avance)
  • le pays dans lequel le produit est vendu
  • les prévisions de ventes associées à ce produit

Donc à partir des données, je crée un tableau croisé dynamique

tcd

pour supprimer les doublons de codes. Comme ça je n'ai qu'un code de produit par marché ce qui est normal parce qu'ils ne commandent qu'une fois par an. Mais je me retrouve avec un code produit qui appartient à plusieurs programmes, ce qui n'est pas possible car un programme peut avoir plusieurs produits mais pas le contraire.

J'aimerai donc pouvoir garder un seul programme associé à un code produit. Mais je n'y parviens pas.

Merci par avance aux personnes qui prendront le temps de m'aider à résoudre mon problème

Bonjour,

P.

J'ai bien joint le fichier pourtant, non ?

MopMop a écrit :

J'ai bien joint le fichier pourtant, non ?

Ok j'ai enfin compris pourquoi.. Mon fichier était trop volumineux donc j'ai pris des captures d'écran, j'espère que ça ira.

MopMop a écrit :

Ok j'ai enfin compris pourquoi.. Mon fichier était trop volumineux donc j'ai pris des captures d'écran, j'espère que ça ira.

Non ..ça ne peut pas aller

Il faut une copie du fichier avec 50 à 60 lignes pour voir ce qu'on peut faire avec; ce n'est quand même pas à des gens bénévoles de recréer un fichier existant....

P.

Désolé Patrick,

Je souhaitais juste savoir comment supprimer les doublons parce que je vais devoir faire la même manipulation pour chaque année fiscale et pour chacune des 18 marques ... Je ne sait pas exactement de quoi vous avez besoin.

Voici le fichier en question :

26annee-16.zip (51.55 Ko)

Peux-tu donner 2 ou 3 exemples faits main (sous l'aspect TCD) pour faire comprendre ?

Un doublon est doublon pourquoi ?

l'itemID ? ou l'item et autre chose ?

Alors en fait le "Program ID" c'est le nom de la collection et "Item ID 9" c'est le nom du produit dans la collection.

Normalement un produit n'appartient qu'à une collection, mais une fois par an ils ressortent un produit d'une ancienne collection et changent le packaging, c'est pourquoi il se retrouve dans plusieurs collections.

Vu que je dois calculer combien de produits et de programmes il y a sur une année et calculer également leur poids financier, il ne me faut garder qu'un Programme Id associé à un Item ID 9.

Donc dans mon TCD, si on prend l'exemple plus haut, notre Item ID 9 " 00F4900000" est présent dans tous les programmes suivants :

14790

14967

15009

16192

16230

16243

16901

Je souhaiterai que mon Item ID 9 "0047900000" soit associé à un seul programme, le 16901 car c'est le dernier.

Donc suprimer l'association avec les Program ID suivants :

14790

14967

15009

16192

16230

16243

Et ce pour tous les Item ID 9 où il y a des doublons. Je sais pas si je peux faire ça avec une macro ou autre ..

Bonsoir MopMop, patrick1957, le forum

Vois ceci :

Option Explicit
Sub test()
Dim a, i As Long, j As Long, n As Long
    a = Sheets("Feuil1").Range("a1").CurrentRegion.Value
    n = 1
    With CreateObject("Scripting.Dictionary")
        .CompareMode = 1
        For i = 2 To UBound(a, 1)
            If Not .exists(a(i, 4)) Then
                n = n + 1
                .Item(a(i, 4)) = n
                For j = 1 To UBound(a, 2)
                    a(n, j) = a(i, j)
                Next
            Else
                For j = 1 To UBound(a, 2)
                    a(.Item(a(i, 4)), j) = a(i, j)
                Next
            End If
        Next
    End With
    'Restitution
    With Sheets("feuil2").Cells(1).Resize(n, UBound(a, 2))
        .CurrentRegion.ClearContents
        .Value = a
    End With
End Sub

klin89

MopMop a écrit :

Donc dans mon TCD, si on prend l'exemple plus haut, notre Item ID 9 " 00F4900000" est présent dans tous les programmes suivants :

14790

14967

15009

16192

16230

16243

16901

Je souhaiterai que mon Item ID 9 "0047900000" soit associé à un seul programme, le 16901 car c'est le dernier.

le dernier ou le + élevé ? c'est différent

Mais peut être que le code de Klin89 , que je salue, te convient ???

Rechercher des sujets similaires à "supprimer doublons"