Excel - doublons

Résolu
Bonjour,

Sous excel 2003 j'ai une liste de données style:

reference produit 1 | ventes 01 | ventes 02 | vente 03
reference produit 2 | ventes 01 | ventes 02 | vente 03
reference produit 3 | ventes 01 | ventes 02 | vente 03
reference produit 4 | ventes 01 | ventes 02 | vente 03
reference produit 1 | ventes 01 | ventes 02 | vente 03

Vous pouvez remarquer que j'ai un doublon dans cette liste...

Cependant il me serait très utile si je pouvais consolider (ajouter) les valeurs inscrites dans ventes 01, vente 02, ventes 03 de ces deux lignes identiques.

J'ai déjà pu identifier les doublons dans ma liste grace a cette formule :
=IF(COUNTIF(G$4:$G104;G104)>1;"Doublon";"")

Elle inscrit "doublon" à coté du doublon.

Pouvez vous m'aider à résoudre ce problème? Sachant que ma liste comporte 1762 lignes!!!

Ophélie
Configuration: Windows XP
Internet Explorer 7.0

20 réponses

Résumé de la discussion

Plusieurs points abordent la gestion des doublons sous Excel 2003, où une liste associe références produit et ventes (ventes 01, 02, 03), et la consolidation des valeurs pour les lignes identiques. La solution actuelle identifie les doublons avec une formule Excel (IF(COUNTIF(G$4:$G104;G104)>1;"Doublon";"")) qui marque les lignes répétées; la demande vise à sommer les valeurs des colonnes ventes. Parmi les propositions, certains suggèrent une colonne de concaténation pour regrouper les clés, l’usage de macros ou des méthodes basées sur les sous-totaux afin de réduire les doublons et de regrouper les chiffres. En parallèle, des échanges indiquent des idées pour le tri et la consolidation après tri des références et évoquent l’éventualité d’un fichier exemple, sans garantir une solution unique.

Bobot (l’IA à votre service)
  1. Salut Ophelie,

    Excuses mon absence sur les forums, des imprévus etc ... Mes amis Jean Pierre & Boisgontier etc ... te sont venus en aide pour les doublons.

    En ce qui concerne que l'éffacement des doublons le code est très simple et court. Il se complique et ressemble à une usine à gaz pour le regroupement des doublons que tu m'avais demandé. si cela t'intéresse toujours recupère le fichier et on en reparle avant dimanche après je serais absent jusqu'au 15 août.

    Dans le code macro, précédé d'une apostrophe quelques explications pour suivre la procedure.

    https://www.cjoint.com/?hDqk6MZtgH

    A+
    2
    1. Salut,
      Je vous propose de tester cette solution :
      - Ajouter une colonne est_doublon (c'est déjà fait) et une autre colonne somme_doublons
      - Trier selon la première colonne (référence produit)
      - dans la première ligne (supposons la cellule F2) de la colonne somme_doublons:
      SOMME.SI(A:A;=A1;B:B) +SOMME.SI(A:A;=A1;C:C) +SOMME.SI(A:A;=A1;D:D)

      - Recopier la formule (pensez au $ pour ne pas incrémenter les entêtes des colonnes)
      - Éliminer les lignes des doublons : http://www.top-assistante.com/bureau/excel/doublons_index.php

      Faites des tests sur des feuilles pas trop chargés.
      0
      1. Merci de ta réponse!

        Je propose de mettre mon fichier sur "ci joint" pour que vous jetiez un oeil;

        J'avoue ne pas comprendre exactement comment tu veux proceder, notamment avec le somme doublons (quelle formule)....

        Voici le lien : http://www.cijoint.fr/cjlink.php?file=cj200807/cijszrNnng.xls

        Merci si vous pouvez faire qq chose...
        0
        1. Avec mes maigres connaissances en VBA j'ai réalisé une macro en "français". Si un magicien pouvait la traduire comme il le faudrait je serais ravie...

          Voir mon fichier en pièce jointe.

          Si la cellule C668 = "Doublon"
          Alors selectionner F668 jusqu'à HA668
          Et Copier
          Et Collage spécial (Ajouter/Add) sur Cellules F667 jusqu'à HA667

          Et ainsi de suite de la ligne 1766 jusqu'à la ligne 3.

          De plus je pense que les calculs de la macro devraient commencer depuis le bas de la liste (dernière ligne 1766).

          Voila j'ai tout essayé maintenant si vous pouvez m'aider ce serait adorable.

          Ophélie
          0
          1. Voila j'ai essayé de faire une macro :

            For i = 1766 to 3
            IF cells(i,3)="Doublon" then
            Range (cells(i,6),cells(i,209)).copy
            Range (cells(ligne du dessus,6),cells(ligne du dessus,209)).select
            Paste special "add" > la je ne sais pas trop comment ecrire

            Next i

            Vous pouvez jeter un oeil?
            0
            1. Voici une nouvelle version. Pouvez vous me dire ce qu'il en est? Merci

              sub ConsoliderDoublons

              Dim i As Long

              For i = 1766 to 3
              For e = i - 1

              If Cells(i, 3) = "Doublon" Then

              Range (Cells(i, 6), Cells(i, 209)).Copy
              Range (Cells(e, 6), Cells(e, 209)).Select

              Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlAdd, SkipBlanks:= False, Transpose:=False

              Exit For
              End If
              Next i
              End sub
              0
              1. La macro bloque à Next i

                De plus je ne sais pas si mon "e" est viable

                Pouvez vous m'aider?

                Ophélie
                0
                1. le 'Next e', ou est il ? :)
                  Je vais essayer de me pencher d'avantage sur le problème demain ou après demain inchaa Allah
                  0
              2. Salut Ophélie75,

                J'ai répondu à ton message, que veux tu exactement faire supprimer tous les doublons avec une macro ou simplement les répérer par un message Doublon avec pourquoi pas une colorisation de la cellule ou du code

                A+
                0
                1. Bonsoir mike,

                  Sympa tu n'as pas oublié!

                  Je ne sais pas si tu as pu regarder mon fichier, mais le probleme est le suivant :

                  Dans ma liste j'ai parfois plusieurs ref identiques. Je suis à meme de les reperer facilement avec une formule simple qui ecrit "Doublon" à coté de la ref répetée. J'ai dc trié mes ref, et dc les doublons sont tous à la suite. Cela se presente comme ceci :

                  | ref 23| 2000 | 1000 | 3000 | 4000
                  doublon| ref 23| 3000 | 2000 | 1500 | 5000
                  doublon| ref 23| 1000 | 5000 | 3400 | 1000

                  Voici à quoi ressemble les lignes à l'endroi où se trouve un doublon (tu vois qu'il n'y a pas seulement q'une ref identique, parfois 2 ou 3, ici 3 ref identiques).

                  LE but final serait de n'avoir plus qu'une ligne pour cette ref comme ceci:

                  | ref | 6000 | 8000 | 7900 | 10000

                  Je pense qu'avec cette exemple tu comprendras mieux mon essai de macro.
                  Par ailleurs on m'a suggeré cet aprem d'utiliser la fonction des sous totaux, je ne la connais pas.

                  Merci en tout cas c'est très gentil

                  Ophélie
                  0
                  1. up! :-)
                    0
                    1. Juste pour dire que je n'ai pas oublié.
                      Je suis toujours à la recherche d'une solution.
                      0
                  2. je suis la de toute facon
                    0
                    1. Il y'a Données>>>Consolider, je ne sais pas si ça résous le problème ou pas.
                      Je propose :
                      1 - Sélectionner La plage de données
                      Données>>>Sous-totaux , choisir somme
                      2 - Après chaque changement de valeur, Excel va ajouter une ligne commencant par "Total ....." et à coté la somme des cellules correspondantes.

                      Il suffit donc d'une macro qui :
                      a - parcours la colonne
                      b - Si la cellule NE commence PAS par "Total", alors elle supprime toute la ligne
                      Boucler si nécessaire.
                      c - Boucler enfin pour supprimer la chaine "Total" de toute les cellules 'Qualifiées'.

                      Voir :
                      I-V. Vérifier la présence d'une chaîne dans un tableau à une dimension
                      I-R. Comparer deux chaînes en utilisant l'opérateur LIKE
                      https://silkyroad.developpez.com/VBA/ManipulerChainesCaracteres/

                      La gestion des boucles dans Excel
                      https://silkyroad.developpez.com/vba/boucles/

                      Doublons : Entre autre, on y trouve "Comment conserver uniquement les doublons d'un tableau ?"
                      https://excel.developpez.com/faq/?page=Doublon

                      Pour supprimer toute une ligne :
                      Selection.EntireRow.Delete

                      J'éspére que ça vous sera utile.
                      0
                    2. @amjahedsuper
                      0
                  3. Je te suggere ceci
                    crees une collone , avec comme formule sur toutes les cellules de cette collone ' concatener la cellule reference avec
                    la cellule des ventes
                    donc tu obtiendra des cellules avec les simples reference ainsi que les cellule avec la reference est les les vente.
                    0
                    1. Merci bcp amjahed c'est tres gentil de ta part!

                      je me suis debrouillée depuis :

                      > sous total
                      >filtre sur les lignes total
                      >copier les valeurs et coller dans autre feuille

                      et voila!

                      Merci bxp encore!!
                      Ophélie

                      PAS je regarderais tes liens ca alair interessant!

                      Merci
                      0
                      1. Bonsoir,

                        A la lecture de ton message et de ton problème, il me vient à l'esprit l'idée d'utiliser un tableau croisée dynamique lui demandant de mettre en ligne les références et en colone "vente01", "vente02" et "vente03" et les éventuels autres paramètres de ton fichier.

                        Mais ce n'est qu'une idée à confronter au problème précis,

                        Cordialement,

                        BDufay
                        0
                    2. Salut,

                      non car il me faut une mise en forme bien specifique pour coller la liste finale dans un autre tableau excel!!

                      j'y avais pensé mais cela ne convient pas

                      MErci qd meme!

                      Ophelie
                      0
                      1. Bonjour mike!

                        Effectivement je me demandais ou tu étais passé :-)

                        Je me suis bien débrouillé avec la fonction "sous total" dans le menu "Données":

                        Je n'ai gardé que les totaux en filtrant ensuite copier les valeurs et enlevé le mot total...

                        En fait c'était pas très dur!

                        Mais je te remercie, tu n'avais pas oublié et j'esprer que tu ne t'ai trop pris la tête sur ce truc depuis...

                        Merci encore

                        Ophélie
                        0
                        1. Non pas de prise de tête j'aime tout ce qui est tordu.

                          Mais jettes un oeil sur ce que je t'ai envoyé

                          A+
                          0
                      2. Ok je vais regarder mais ce soir je pense...
                        Merci
                        Bonne fin d'après midi!

                        Ophélie
                        0
                        1. MAis si tu aimes les trucs tordus regarde mon post dans le forum Bureautique!
                          Je pense que c'est pas déconnant comme idée...

                          OPhélie
                          0
                          1. C'est tout simsplement un truc de DINGUE!!!

                            ENORME!!!

                            Je pense que tu devrais le mettre dans la rubrique astuce ce fichier c'est tout simplement génial!

                            Merci Merci Merci Mike!!!
                            0