Comment dédoublonner "intelligemment" un fichier excel ?

laguigne59

XLDnaute Nouveau
Bonjour,
je ne suis pas experte, et je passe beaucoup de temps à dédoublonner manuellement mes fichiers.
J'ai bien tenté de le faire via une macro, mais je me heurte au fait que les valeurs présentes dans mes colonnes ne sont pas identiques, et donc une intervention manuelle est nécessaire.

Mon problème est le suivant : j'ai des produits commandés par des magasins. Certains de ces produits peuvent être proposés par lot. Les produits (et donc aussi les lots) peuvent participer à une promotion nationale ou pas.

J'aimerai dédoublonner mon fichier pour faire abstraction des lots, et donc travailler uniquement sur le code produit, en reprenant sur une seule ligne :
code produit - sélection mag A - sélection mag B - sélection mag C - sélection totale - promo - promo mag A - promo mag B - promo mag C
de cette manière : si j'ai une sélection mag sur un lot (même si ce n'est pas le premier), alors je considère le produit comme sélectionné pour le magasin, et dans sélection totale je prends également le max de magasins ayant commandé le produit (quelque soit le lot). Idem pour la promo nationale : si un lot est en promo locale et le suivant en promo nationale, c'est la promo nationale qui prime.

Je vous joins le fichier exemple avec sur le 1er onglet le fichier initial et sur le 2nd ce que je veux obtenir.

Mon fichier réel traite 10000 produits, donc manuellement c'est très long !

Merci de m'aiguiller,
Laguigne
 

Pièces jointes

  • Fichier test mag.xlsx
    10.1 KB · Affichages: 42

laguigne59

XLDnaute Nouveau
Re : Comment dédoublonner "intelligemment" un fichier excel ?

Merci beaucoup,
effectivement cela fonctionne bien (sur la partie droite de la feuille n°2)
Par contre, je ne comprends pas tout ton code, donc si tu avais quelques minutes pour mettre en commentaire ce que tu fais, cela m'aiderait à progresser :rolleyes:

Laguigne
 

dumdumba18

XLDnaute Nouveau
Re : Comment dédoublonner "intelligemment" un fichier excel ?

Bonjour,

je recherche depuis un certains moment une solution (une macro) qui me permettrais de déboulonner des items par ligne. Elle doit surement exister dans le forum mais je n'ai aps encore trouvé la bonne macro.

Par exemple :
ID GENRE 1 GENRE 2 GENRE 3 GENRE 4 GENRE 5 ....
1 ABOYEUR ABOYEUR LILI TOTO TOTO
2 TOTO TOTO TOTO LILI TOTO
3 LILI TOTO TOTO ABOYEUR ABOYEUR
4 TOTO TOTO ABOYEUR ABOYEUR ABOYEUR
5 TOTO TOTO ABOYEUR TOTO
...
jusqu'a 12000 lignes

et j'aimerais obtenir après dedoublonnage :
ID GENRE 1 GENRE 2 GENRE 3 GENRE 4 GENRE 5 ...
1 ABOYEUR LILI TOTO
2 TOTO LILI
3 LILI TOTO ABOYEUR
4 TOTO ABOYEUR
5 TOTO ABOYEUR

J'espère que mon exemple est assez clair, je joins un fichier xls en exemple.

Un grand merci pour ceux et celle qui peuvent m'aider.
 

Pièces jointes

  • exemple-a-dedoubloner.xlsx
    8.6 KB · Affichages: 49

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Comment dédoublonner "intelligemment" un fichier excel ?

Bonjour dumbadumba, et bienvenue sur le forum

voir fichier joint

à+ Philippe



Edit: il vaut mieux créer un nouveau fil de discussion plutôt que "squatter" un autre
 

Pièces jointes

  • 111.xlsm
    14.6 KB · Affichages: 49
  • 111.xlsm
    14.6 KB · Affichages: 46
  • 111.xlsm
    14.6 KB · Affichages: 44

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Comment dédoublonner "intelligemment" un fichier excel ?

Bonsoir,

Méthode rapide

cf pj

Code:
Sub SupDoublonsCol()
  Application.ScreenUpdating = False
  Set f1 = Sheets("BD")
  Set f2 = Sheets("resultat")
  a = f1.Range("A3:AO" & [a65000].End(xlUp).Row)
  Dim c()
  ReDim c(1 To UBound(a, 1), 1 To UBound(a, 2))
  For lig = 1 To UBound(a)
    Set dico = CreateObject("Scripting.Dictionary")
    For col = 2 To UBound(a, 2)
      If a(lig, col) <> "" Then dico(a(lig, col)) = ""
    Next col
    c(lig, 1) = a(lig, 1)
    col = 2
    For Each clé In dico.keys
      c(lig, col) = clé
      col = col + 1
    Next clé
  Next lig
  Sheets("resultat").[A2].Resize(UBound(a, 1), UBound(a, 2)) = c
End Sub

jb
 

Pièces jointes

  • Copie de exemple-a-dedoubloner.xls
    40 KB · Affichages: 43
Dernière édition:

Discussions similaires

Réponses
9
Affichages
232

Statistiques des forums

Discussions
312 668
Messages
2 090 739
Membres
104 644
dernier inscrit
MOLOKO67