Trouver doublon et si détection Fin de la macro

Bonjour à tous,

j'aimerais créer une macro qui cherche les doublons dans les lignes parmis les colonnes de A à N.

Et là, j'aimerais selon ce qui est le plus facile :

- colorier les colonnes A à N dans une certaine couleur pour les lignes en doublon

ou bien

- arrêter la macro de recherche de doublon et en arretant la macro, sélectionner la première donnée en doublon.

Ceci afin de me permettre de corriger les lignes dont l'intégralité de la ligne est en doublon, suite à des erreurs de remplissage que je cherche à corriger.

Bien cordialement

Bonjour,

Merci pour ta réponse.

Voici un exemple de fichier SANS DOUBLON car la macro "lancer" les supprime.

Mon objectif est de ne pas les supprimer mais de pouvoir les modifier.

Cordialement

57trame-forum-v3.xlsm (114.70 Ko)

Bonjour,

Merci pour ta réponse.

Voici un exemple de fichier SANS DOUBLON car la macro "lancer" les supprime.

Mon objectif est de ne pas les supprimer mais de pouvoir les modifier.

Cordialement

mynameisjeff a écrit :

Bonjour,

Merci pour ta réponse.

Voici un exemple de fichier SANS DOUBLON car la macro "lancer" les supprime.

Mon objectif est de ne pas les supprimer mais de pouvoir les modifier.

Cordialement

C'est pas le fichier d'une autre personne qu'on a besoin c'est du votre afin de construire/adapter une macro en fonction de l'emplacement de vos données.

Le fichier c'est le mien, c'est celui que j'ai créé une première fois pour demander assistance sur la macro "lancer" sur ce forum mais la base correspond tout à fait à mon fichier final sauf que dans mon fichier final, j'aurais entre 8 000 et 15 000 lignes.

Aujourd'hui je revient demander de l'aide avec ce même fichier car il est toujours d'actualité.

La macro lancer fonctionne parfaitement et me convient mais vu que cette macro supprime les doublons et que je ne souhaite pas supprimer les doublons,

je cherche à trouver un moyen de modifier manuellement mes doublons mais étant donné que j'ai plus de 8 000 lignes, je préfèrerai trouver une macro pour m'aider à effectuer cette tâche.

Cordialement.

voici un exemple de macro qui coloriera dans la première colonne les valeurs en doublons

Sub test()
    Dim i%, dl&
    Dim plage As Range
    dl = Feuil31.Range("a" & Rows.Count).End(xlUp).Row
    Set plage = Feuil31.Range("a3:a" & dl)
    With Feuil31
        For i = 3 To dl
            If Application.WorksheetFunction.CountIf(plage, .Cells(i, 1)) > 1 Then
                .Cells(i, 1).Interior.ColorIndex = 3
            End If
        Next
    End With
End Sub

Dans le code de gmb c'est cette instruction

'On supprime les doublons dans le tableau des données
    ActiveSheet.Range("$A$2:$L$" & Range("C" & Rows.Count).End(xlUp).Row).RemoveDuplicates Columns:=Array(1, 2, 3, 4, 5, 6 _
        , 7, 8, 9, 10, 11, 12), Header:=xlNo

qui (apparement) supprime les doublons donc vous pouvez la désactiver en ajoutant une apostrophe devant "Activesheet".

Je ne sais pas ce que son code fait d'où le fait que je ne le modifie pas et que je vous donne une alternative en attendant qu'il se manifeste.

Bonjour,

Merci pour votre formule. Cependant celle-ci ne compare que les éléments de la première colonne.

Y aurait-il moyen de modifier la formule afin de prendre en comparaison les colonnes A à N ?

Merci encore

Cordialement

Merci de bien vouloir être plus explicite.

Sub test()
    Dim i%, dl&
    Dim plage As Range
    dl = Feuil31.Range("a" & Rows.Count).End(xlUp).Row
    Set plage = Feuil31.Range("a3:[color=#FF4000]n[/color]" & dl)
    With Feuil31
        For i = 3 To dl
            If Application.WorksheetFunction.CountIf(plage, [color=#FF0000].Cells(i, 1), .Cells(i, 2), .Cells(i, 3), .Cells(i, 14),[...] .Cells(i, 14)[/color]) > 1 Then
                .Cells(i, 1).Interior.ColorIndex = 3
            End If
        Next
    End With
End Sub

Dans ta formule, qui marche (mais qui ne correspond pas encore à ce que je recherche), il faudrait qu'au lieu de prendre uniquement en comparaison la colonne a, qu'il me prenne en élément de comparaison de la colonne a à la colonne N et pour chaque ligne.

Puis qu'il mette en rouge les éléments en double.

Merci bien

Cordialement

Donc vous voulez finalement rechercher si toute la ligne 3 (puis 4 , puis 5 etc) à un doublon dans toute la base ?

En fait, ce que je cherche à faire exactement :

voici ma règle :

j'ai une liste de produits dans ma colonne C et pour chaque produit j'ai un code article en colonne B

Cette ligne de produit est présente 14 fois mais ce qui change se passe dans ma colonne A,

pour chaque produit j'ai 14 références différentes dans ma colonne A telles que

la première ligne = 1,00, puis 1,20, puis 2,00, puis 2,20, puis 3,00, puis 3,20, puis 4,00, 5,00, 6,00, 7,00, 8,00, 9,00, 10,00

Exemple:

1.00 123456 produit 1

1.20 123456 produit 1

10.00 123456 produit 1

1.00 456789 produit 2

1.20 456789 produit 2

Ce que je cherche à faire exactement c'est trouvé quels sont les produits qui n'ont pas les 14 références.

Il y a des erreurs dans mon programme actuel (comme par exemple, à la suite d'une copie de ligne via la petite croix noire en bas à droite de la case, et j'ai donc des codes produits qui se suivent : EXEMPLE : 49900 ligne 1, 49901 ligne 2...)

Et donc ces produits ne respectent actuellement pas la règle des 14 références présentes (1.00 ; 1,20...)

Je cherche donc un moyen d'identifier ces cellules.

Alors soit justement par un système de coloriage soit un autre moyen comme par exemple (suggestion que je souhaiterais mais je ne sais si réalisable) :

arrêter la macro à la première ligne ne respectant pas cette règle et sélectionner la cellule qui ne respecte pas la règle.

Voilà mon projet.

Merci pour le temps que vous consacrer à m'aider.

Très cordialement

Et que faisais la macro de gmb ? Parce que j'ai regardé sans trop comprendre son travail (normal je n'en suis pas encore à son niveau )

La macro de gmb se décompose en 3 étapes :

  • la première était de supprimer les doublons (j'ai rajouter une apostrophe devant le temps de remédier à mon problème)
  • la deuxième consistait à ne sélectionner que les produits n'apparaissant qu'un fois
  • la troisième sélectionne les lignes de l'étape précédente et les multiplie 13 fois.

Car le but que je cherchais dans un premier temps était d'ajouter une ligne et de la multiplier par 14 en modifiant la première colonne de chaque ligne avec des valeurs 1.00 1.20 ...

je ne comprends pas grand chose...Dans la photo ci-jointe, quelle ligne devrait être coloriée ? Et pourquoi ?

sans titre

Sur cette photo, la macro a été lancée et a déjà supprimé les doublons.

Dans cette photo rien n'a besoin d'être colorié car il n'y a aucun doublon.

Il faut imaginer qu'une ligne soit présente 2 fois.

Le code que je cherche à mettre en place est le suivant :

Si le nom de mon produit (Cell (i, "C")) n'a pas 14 fois son nom avec le même code article ET

que ce nom de produit n'a pas les 14 références de label alors

arrêter ma macro sur la première cellule qui ne respecte pas

OU BIEN et là ce serait le top

SI mon produit n'apparait pas sur 14 lignes (à la suite, oui, un même produit apparait toujours 14 fois sauf erreur à corriger)

ALORS rajouter une ligne et insérer le numéro manquant parmis les références

SI il manque toujours une reférénce label

ALORS rajouter une ligne jusqu'à ce qu'il n'y ait plus de référence label manquant sur mon produit

puis

SI mon produit a 14 label mais que les codes articles ne sont pas les meme

ALORS prendre le premier code article de la serie et le copier/coller en valeur sur les 13 lignes suivantes.

A savoir que les éléments de comparaison sont les lignes A, B et C.

Cordialement

Concernant les labels, sur la photo c'est incrémenté, mais cela doit être comment ? fixe à 1,00 pour chaque ligne ? où il y a un pas d'incrémentation ?

pour les labels j'ai ce pas :

1,00

1,20

2,00

2,20

3,00

3,20

4,00

5,00

6,00

7,00

8,00

9,00

10,00

Et après ça recommence. C'est donc de 1 à 4 non inclus : le chiffre puis le suivant le chiffre,20

puis de 4 à 10 inclus : un pas de 1.00

OK, je pense avoir fais le tour des questions à poser, le fichier fourni, il contient au moins un "cas" qui ne correspond pas aux critères ?

je renvoie un fichier comprenant une erreur sur le produit 1 et une autre erreur sur le produit 2 :

sur le produit 1 il manque une ligne avec label 1.20

sur le produit 2 : erreur de code produit : 14 codes produits qui se suivent, qui ont bien le même nom produit et bien les 14 labels demandés. Mais l'erreur vient de la succession de chiffres du codes produit (ligne x : code produit y, ligne x + 1 : code produit y + 1 (le +1 est faux et doit être corrigé)

Très cordialement


En fait, j'ai fait pour le produit 2 une liste de codes produits successifs mais il faudrait (dans l'idéal bien entendu) que si même un seul de la série de 14 produits a un code produit différent, copier le premier code produit sur les 13 autres lignes.

En gros, le processus consiste en à partir de la ligne 3, si un produit n'est pas présent 14 fois ajouter le nombre de ligne suffisantes afin qu'il soit présent 14 fois puis vérifier qu'en fasse de chaque ligne le bon code label corresponde donc dans l'ordre 1.00 ; 1.20 ... jusqu'à 10 puis dernière étape, copier le premier code produit sur les 13 lignes si un seul code produit sur ces 14 lignes est différent.

Merci pour votre aide et le temps que vous consacrez!

Cordialement

21trame-forum-v4.xlsm (117.57 Ko)
Rechercher des sujets similaires à "trouver doublon detection fin macro"