Macro Excel pour les doublons sur 3 mois glissants

Bonjour, déjà merci beaucoup pour votre forum complet et très intéressant :

Je suis tout novice en VBA, et j'ai un fichier à traiter;

En effet, j'ai une base de données ou je veux identifier mes doublons sur mes adresses mail mais aussi sur le nom et prénom sur 3 mois glissants, et écrire dans une colonne ok si pas de doublons et doublons si doublons.

Je ne vois absolument pas comment faire?

Pouvez-vous m'aider svp ?

Merci d'avance

P.S : j'ai joint mon fichier en piece jointe

33doublons.xlsx (9.84 Ko)

Bonjour,

16 Mai 2013, 15:35, 0 réponses ; sans doute pas assez explicite.

mais aussi sur le nom et prénom

nécessaire ? Tu as vraiment dans ta base des noms différents avec le même email ?

et puis :

sur 3 mois glissants

tu pourrais faire l'effort de mettre des dates variées, dire ce que tu attends comme résultat sur un exemple précis.

eric

Bonjour, Bonjour Eriiic,

Voici une proposition pour la 1ere partie de la requête, à savoir identifier les doublons soit par l'adresse mail, soit par le nom et prénom.

Par contre, je rejoins Eriiic sur les points qu'il soulève à savoir que la question des dates reste en suspens : 3 mois glissants... c'est à dire ? Est ce 3 mois à partir d'aujourd'hui ?

Si la même adresse apparait à la date d'hier et également en Janvier dernier, est ce que ce n'est plus considéré comme un doublon ? Est ce qu'une adresse peut apparaitre plus de 2 fois ?

Comment traite t on les cellules de dates vides, puisqu'il y en a ? etc...

Pas tout à fait sur de pouvoirde proposer une solution complète... tout dépendra de tes réponses.

Bonjour Messieurs, tout d'abord merci pour vos réponses.

Je vous explique, ceci est un extract d'un fichier que mon boss m'a donné à traité. quand je demande les doublons sur le nom+prénom c'est pour éviter qu'un individu s'inscrive plusieurs fois avec un email différent pour profiter de plusieurs cheques cadeaux. Eric les dates ce n'est pas moi qui les rentres mais c'est une extraction d'un logiciel.

Pour les 3 mois glissants, mon fichier commencant au mois de février, (la colonne moi gains avec le numéro signifie le mois) il faut que je regarde seulement les doublons sur 3 mois glissants c'est à dire de février à avril donc du mois 2 au mois 4, et ainsi de suite. il ne faut pas regarder par rapport à la colonne "date envoi" mais bien "mois gain 2013"

Les cellules vides, pour les colonnes dont j'ai besoin elles sont toutes remplies il me semble, par exemple si une adresse mail apparait en fevrier 2013 mais aussi en decembre 2013 elle ne sera plus considéré comme un doublon

Une partie de mon code serait cela, maintenant reste à traiter les 3 mois glissants mais je ne vois absolument pas comment faire...

Option Explicit

Option Base 1

Public Sub Test()

Call Tri_Doublon_Multicolonne(Range("A2:c" & Range("a" & Rows.Count).End(xlUp).Row))

End Sub

'Trier les doublons dans une plage de cellules en prenant en compte plusieurs colonnes

Public Sub Tri_Doublon_Multicolonne(plage As Range)

Dim dico, tablo, textrec As String

Dim i, j As Integer

Set dico = CreateObject("Scripting.Dictionary")

tablo = plage.Value

For i = 1 To UBound(tablo)

textrec = ""

For j = 1 To plage.Columns.Count

textrec = textrec & tablo(i, j)

Next

If Not dico.Exists(textrec) Then

dico(textrec) = i + 1

Cells(i + 1, 7) = "OK"

Else

Cells(i + 1, 7) = "doublons"

Cells(dico.Item(textrec), 7) = "doublons"

End If

Next

End Sub

Salut,

c'est un peu plus clair... puisque tu utilises l'objet dictionnaire, tu peux te servir de l'Item, dont tu n'as pas besoin pour la détection des doublons, pour la gestion du calcul à 3 mois en prenant pour référence la colonne E.

Pour info, la macro considère que ton tableau est, par défaut, trié par colonne E.

Si ce n'est pas le cas, on pourra toujours intégrer une fonction de tri en début de code.

voici une proposition... à tester.

Bonjour Game Over,

Merci pour ta réponse, concernant le triage de la colonne E pas besoin de le faire manuellement ou de mettre un code dans la macro enfin je pense car je pense que le fichier qui sort de l'extraction est déja trier !

Mais par pure curiosité à quoi aurait correspondu un code pour trier et ou j'aurais du le mettre?

Je viens de tester le fichier et cela à l'air de marcher nikel! GRAND GRAND MERCI !!

greenlightII a écrit :

Bonjour Game Over,

Merci pour ta réponse, concernant le triage de la colonne E pas besoin de le faire manuellement ou de mettre un code dans la macro enfin je pense car je pense que le fichier qui sort de l'extraction est déja trier !

J'ai aussi pensé que le tri était déjà fait à l'extraction, donc je ne l'ai pas fait.

greenlightII a écrit :

Mais par pure curiosité à quoi aurait correspondu un code pour trier et ou j'aurais du le mettre?

With Sheets("Doublons")'juste après cette ligne
    .Range("A1").CurrentRegion.Sort Key1:=.[E1], Header:=xlYes 'tri
greenlightII a écrit :

Je viens de tester le fichier et cela à l'air de marcher nikel par contre pourquoi quand j'execute le bouton RUN afin de lancer la macro, ce dernier disparait?

Le bouton ne disparait pas... la macro crée une nouvelle feuille appelée doublon.

La page doublon est gérée par la macro, donc inutile de la supprimer, elle est automatiquement mise à jour lorsque tu retournes sur la feuil1 et appuies sur le bouton.

Oui oui je viens de voir et de réctifier mon message !

ENORME MERCI A TOI VRAIMENT !

Normalement le fichier doit etre trier vu qu'il extrait les listes mois par mois et qu'il les rajoute manuellement a un fichier ou il les cumul.

Par contre je n'avais envoyé qu'une partie de mon fichier, donc j'ai voulu réadapté le code a mon nouveau fichier,

et quand je lance la macro dans un fichier sans doublons il me met en rouge quelque ok comment cela se fait - il?

J'aimerais également colorier mes lignes doublons par du rouge pour, pas la couleur du texte mais la couleur du fond quel est le code correspondant et ou le rajouter svp?

Une dernière question ma macro marchera-t-elle si je commence au moins de janvier ou la tu l'as adapté pour un fichier commençant au moins de février, cela peut te paraître bête mais je préfère me renseigner au cas ou afin d'éviter les mauvais surprises.

P.S : j'ai joint un imprim écran de mon fichier

doublons

J'ai apporté quelques modifications au code de la macro mais le résultat reste inchangé.

La couleur rouge des quelques ok a été supprimée.

Les doublons apparaissent maintenant en fond rouge.

(et j'ai quand même intégré le tri automatique dans cette version)

L'ajout des données de janvier ne posera aucun problème.

FRANCHEMENT UN ENORME MERCI POUR TA GENTILLESSE, TA RAPIDITE ET TA DISPONIBILITE, par contre comment changer le code pour que toute la ligne qui est doublons soit en rouge et pas seulement la colonne E?

comme ça

Bonjour à toi Game Over,

Merci encore pour tout, mais mon chef (décidement) grâce à ce que tu as fais m'a demandé d'afficher une boite de dialogue s'il n'y a pas de doublons et s'il y en a d'indiquer les numéros de lignes des doublons dans une boite de dialogue...

comment adapter ton code?

Merci d'avance.

Dis à ton chef que si ça ne suffit toujours pas, je peux aussi programmer un signal sonore, configurer un jet d'oxygène en direction de l'opérateur et demander à un coursier de venir lui tirer le bras pour être sur de ne pas râter un doublon.

AHAHAHAHAHAHA merci beaucoup encore!!!!

Rechercher des sujets similaires à "macro doublons mois glissants"