Suppression des doublons personnalisés sur plusieurs colonnes

Bjr Team

Svp, j’ai besoin de votre aide et appui.

En fait l’énoncé de mon soucis est clairement résumé dans le fichier en attache.
Merci pleinement pour votre collaboration.

bonsoir

un essai du principe par formule (à adapter)

cordialement

10rolin-1.xlsx (13.24 Ko)

Bonsoir à tous !

Une approche via Power Query :

tulipe_4

Bjr. Svp, pouvez m’expliquer un peu la formule? Pouvez un m’expliquer la présence de 0 et de -2 dans la formule?

Soyez indulgent je vous en prie. Je découvre chaque jour et chaque jour est une vie.

Cdt

bonsoir

tout depend du n° de la première ligne de ton tableau

si le tablo des valeurs commence à la ligne 5 ,, ce sera -4 ,,,pour avoir 1

parce Equiv donne une position dans un tablo , tandis que LIGNE donne un n° de ligne , ce qui est different

cordialement

Bsr Team

On observant de plus près vos formules, personne ne prend en compte la colonne A qui définit la collecte.

En fait, tout part du numéro de compteur collecté.

Par exemple, à la ligne 5 et 6, c’est le même numéro qui a été collecté par la même équipe de la même unité le même jour. Donc il y a doublon.

Idem pour la ligne 8 et 9

Donc un compteur peut être collecté le même jour, mais par deux unités différentes.

@Tulipe_4

Je constate qu’il y a des formules dans chaque cellule et j’ai à peu près 40000 lignes à traiter. Ce qui serait très fastidieux.

@Arturo83

Merci déjà pour la proposition. Mais je constate que vous n’avez pas pris en compte la colonne A. Néanmoins, à travers votre méthode, est il possible d’identifier d’abord les doublons avant de les supprimer ?

@JFL

Merci pour votre proposition. Néanmoins, cela ne m’aide pas assez parce que vous avez dit le faire par Power Query, mais comment ? Vous ne l’avez expliqué.

Merci pour vos contributions, je reste tout ouïe.

Cdt.

Bonjour,

je constate que vous n’avez pas pris en compte la colonne A. Néanmoins, à travers votre méthode, est il possible d’identifier d’abord les doublons avant de les supprimer ?

Voilà les modifications demandées:

-prise en compte du Numéro de compteur,

-il y a un bouton pour repérer les doublons ( la ligne en doublons passe en vert) et un"X" est ajouter dans la colonne "H"),

-puis un deuxième bouton pour supprimer les doublons après repérage.

Cdlt

Bonjour à tous !

@JFL

Merci pour votre proposition. Néanmoins, cela ne m’aide pas assez parce que vous avez dit le faire par Power Query, mais comment ? Vous ne l’avez expliqué.

Pour prendre connaissance des retraitements appliqués : ALT F12. Ce raccourci ouvrira la fenêtre de l'éditeur de Power Query. Les différentes étapes appliquées à votre source (le tableau structuré (tCollecte) sont visibles dans la partie droite de la fenêtre.

Ne soyez pas rebuté par l'apparente complexité de l'outil. Sa grande puissance est très documentée par une multitude de tutoriels que vous trouverez sans peine sur le Net.

Bjr la Team

Je ne saurais commencer sans vous dire merci pour cette aide à mon égard.

@Arturo83

Merci. Petit à petit ça évolue. Svp, je voudrais adapter votre code dans mes données et je voudrais avoir une petite explication des lignes suivantes :

Application.ScreenUpdating = False
    DerLig = Range("A" & Rows.Count).End(xlUp).Row
    Range(Cells(2, "A"), Cells(DerLig, "G")).Interior.ColorIndex = xlnon
    For i = 3 To DerLig - 1
        Num_Cpt = Cells(i, "A")
        Mat2 = Cells(i, "D")
        Action = Cells(i, "F")
        Date_J = Cells(i, "G")

        With Range("B1:B" & DerLig)
            Set x = .Find(Mat2, lookat:=xlWhole)
            If Not x Is Nothing Then
                Deb = x.Row

Surtout

Range(Cells(2, "A"), Cells(DerLig, "G")).Interior.ColorIndex = xlnon

et

With Range("B1:B" & DerLig)
            Set x = .Find(Mat2, lookat:=xlWhole)
            If Not x Is Nothing Then

ainsi que

With Range("B1:B" & DerLig)
            Set x = .Find(Mat2, lookat:=xlWhole)
            If Not x Is Nothing Then
                Deb = x.Row

En passant @Arturo83,

j'ai constaté dans les données brutes en ma possession, des collectes sans numéro de compteurs. Et lorsque je clique sur le bouton "Répérage des doublons", il identifie les cellules vides comme doublons, ce qui prête à confusion. svp, Pouvez vous ajouter cette contrainte dans le code pour que les cellules vides ne soient considérées comme doublons ?

@JFL

Merci pour votre disponibilité. Malheureusement et une fois encore, vous avez donné des directives sans toutefois joindre le fichier.

Cdt.

Bonsoir à tous !

@JFL

Merci pour votre disponibilité. Malheureusement et une fois encore, vous avez donné des directives sans toutefois joindre le fichier.

Le fichier lié à ma proposition a été posté. Merci de relire le fil des messages.

Votre "une fois encore" m'incite à ne plus poursuivre ma communication avec vous.

Je vous souhaite néanmoins de mener à bien votre projet.

Bonsoir,

Sur la ligne suivante, c'est un mauvais copié/collé, il fallait y trouver (manque le "e" à la fin):

Range(Cells(2, "A"), Cells(DerLig, "G")).Interior.ColorIndex = xlnone

**********************************************************************************

With Range("B1:B" & DerLig)
            Set x = .Find(Mat2, lookat:=xlWhole)

Signification:

Sur la plage de valeurs de B1 à B jusqu'à la dernière ligne, on recherche la valeur "Mat2" (matricule2) que le met dans une variable "x"

***************************************************************************************

If Not x Is Nothing Then

si x n'est pas rien, cela revient à dire si X est trouvé alors on exécute la suite du programme

***************************************************************************************

 Deb = x.Row

Si "x" est trouvé, alors on met le numéro de ligne ou se trouve le premier "Mat2" dans la variable "Deb" (comme début)

ceci va permettre par la suite de recherche tous les autres "Mat2" , jusqu'à ce que l'on retombe sur la ligne de début et si c'est le cas on sort du programme sinon on continue la recherche.

Cdlt

Bsr la Team, J'espère que chacun se porte bien.

@JFL

Désolé si mes expressions vous ont désobligeantes. ce n'était pas fait à dessein. Toutefois Merci pour l'aide apportée.

@Arturo83

Merci une fois encore, j'ai pu tester. ça marche mais les cellules vides sont considérées comme doublon.

Je n'ai pas vraiment d'expérience dans le vba et j'espère qu'avec le temps, je pourrais m'y atteler. La dernière fois je cherchais à comprendre certaines lignes de code, c'est parce que je voulais un peu adapter à mon fichier.

je joins ledit fichier pour que vous m'apporter de l'aide pour que je puisse clôturer ce projet. C'est identique sauf qu'il y a des colonnes intercalées en plus.

Merci encore pour disponibilité.

Bonsoir,

Ceci est-il mieux?

Attention, j'ai considéré que les données étaient déjà triées par compteur et par date, si ce n'était pas le cas, il faudrait introduire un bout de code pour réaliser cette opération de tri.

Cdlt

Rechercher des sujets similaires à "suppression doublons personnalises colonnes"