[RESOLU] Comparer deux feuilles d'adresses mail...

libellule85

XLDnaute Accro
Bonjour le forum,
J'ai une nouvelle fois besoin de vous, mes connaissances en vba ne sont pas suffisantes pour pouvoir créer une macro :confused: pour comparer deux feuilles contenants des adresses mails : la première contient les adresses de mails refusés, la deuxième contient les adresses qui n'ont pas de problème. Le résultat de la comparaison devra être sur la feuille 3 :

1°) Si une adresse se trouve dans les deux deux feuilles RefMail et Mail le résultat doit être "Attention : à vérifier"
2°) Si une adresse se trouve seulement dans la feuille RefMail le résultat doit être "Refusé"
3°) Si une adresse se trouve seulement dans la feuille Mail le résultat doit être "Ok"


Je joins un fichier qui sera un peu plus "parlant"
D'avance merci pour votre aide
 

Pièces jointes

  • Essai Tri.xls
    18.5 KB · Affichages: 94
  • Essai Tri.xls
    18.5 KB · Affichages: 106
  • Essai Tri.xls
    18.5 KB · Affichages: 114
Dernière édition:

david84

XLDnaute Barbatruc
Re : Comparer deux feuilles d'adresses mail...

Bonsoir,
à tester :
Code:
Sub test()
Dim Plage1 As Range, Plage2 As Range, DerLigne&, Test1&, Test2&
Set Plage1 = Sheets("RefMail").Range("A1:A" & Range("A" & Rows.Count).End(xlUp).Row)
Set Plage2 = Sheets("Mail").Range("A1:A" & Range("A" & Rows.Count).End(xlUp).Row)
DerLigne = Sheets("Résultat").Range("A" & Rows.Count).End(xlUp).Row
    With Sheets("Résultat")
        For i = 1 To DerLigne
            Test1 = Application.WorksheetFunction.CountIf(Plage1, .Cells(i, 1).Value)
            Test2 = Application.WorksheetFunction.CountIf(Plage2, .Cells(i, 1).Value)
            If Test1 > 0 And Test2 > 0 Then
                .Cells(i, 3) = "Attention : à vérifier"
            ElseIf Test1 > 0 And Test2 = 0 Then
                .Cells(i, 3) = "Refusé"
            Else
                .Cells(i, 3) = "Ok"
            End If
        Next i
    End With
End Sub
A+
Edit : bonsoir Job:), bien d'accord avec toi mais elle voulait une formule (peut-être pour l'inclure dans un autre code plus général)...
 
Dernière édition:

libellule85

XLDnaute Accro
Re : Comparer deux feuilles d'adresses mail...

Bonsoir Job75, David84,
Tout d'abord je tiens à vous remercier pour vos réponses.
David 84 : j'ai essayé ta macro quand je clique sur le bouton j'ai juste un ok qui s'inscrit sur la feuille Résultat en C1 :confused:
 

job75

XLDnaute Barbatruc
Re : Comparer deux feuilles d'adresses mail...

Re, salut David,

Puisqu'il faut mettre les points sur les i, formule en D1 :

Code:
=SI(NB.SI(RefMail!A:A;A1)*NB.SI(Mail!A:A;A1);"Attention : à vérifier";SI(NB.SI(RefMail!A:A;A1)*NON(NB.SI(Mail!A:A;A1));"Refusé";SI(NON(NB.SI(RefMail!A:A;A1))*NB.SI(Mail!A:A;A1);"Ok";"?")))
Fichier joint.

Alors formule ou VBA à votre avis ?

A+
 

Pièces jointes

  • Essai Tri(1).xls
    26.5 KB · Affichages: 67

libellule85

XLDnaute Accro
Re : Comparer deux feuilles d'adresses mail...

Re,
Effectivement cela marche !!! Par contre, je me suis mal exprimé mais je voulais que quand on clique sur le bouton Traiter l'adresse devait s'afficher en même temps que les résultats "Attention : à vérifier", "Refusé" et "Ok"
 

job75

XLDnaute Barbatruc
Re : Comparer deux feuilles d'adresses mail...

Re,

S'il faut absolument du VBA, le plus simple est de transcrire la formule Excel :

Code:
Sub Test()
With Sheets("Résultat").Range("D1:D" & Sheets("Résultat").[A65536].End(xlUp).Row)
.FormulaR1C1 = "=IF(COUNTIF(RefMail!C1,RC1)*COUNTIF(Mail!C1,RC1), ""Attention : à vérifier"",IF(COUNTIF(RefMail!C1,RC1)*NOT(COUNTIF(Mail!R1,RC1)), ""Refusé"",IF(NOT(COUNTIF(RefMail!C1,RC1))*COUNTIF(Mail!C1,RC1),""Ok"",""?"")))"
.Value = .Value 'facultatif, supprime les formules
End With
End Sub
Fichier (2).

A+
 

Pièces jointes

  • Essai Tri(2).xls
    43.5 KB · Affichages: 76

gbinforme

XLDnaute Impliqué
Re : Comparer deux feuilles d'adresses mail...

Bonjour à tous,

Personnellement j'ai pensé que la macro devait recopier les adresses mail sur la feuille résultat vierge et mettre l'appréciation à coté et cela donne le résultat de la question me semble-t-il ?
 

Pièces jointes

  • compare_mails.xls
    40.5 KB · Affichages: 74

job75

XLDnaute Barbatruc
Re : Comparer deux feuilles d'adresses mail...

Re, salut gbinforme,

Pour créer la liste en feuille Résultat, le mieux est d'utiliser l'objet "Scripting.Dictionary".

Voir Fichier (3).

Edit : ici dans la formule le dernier IF est inutile.

A+
 

Pièces jointes

  • Essai Tri(3).xls
    46 KB · Affichages: 63
Dernière édition:

Habitude

XLDnaute Accro
Re : Comparer deux feuilles d'adresses mail...

Bonjour à tous

Pour ceux que ca pourrait intéresser.

Avec module de classe Orienté objet et utilisation des Type Enum et des Property Get, Property Let.

p.s Bonne idée le Dictionary, en autant qu'il n'y ait pas plus de 256 occurences.
 

Pièces jointes

  • EssaiTriHabs.xlsm
    29.6 KB · Affichages: 81
Dernière édition:

gbinforme

XLDnaute Impliqué
Re : [RESOLU] Comparer deux feuilles d'adresses mail...

Bonjour libellule85,

Merci pour ton sympathique message et tu vois que tu ne t'étais pas si mal exprimé que cela puisque j'avais bien compris ta question.

Bonne journée &@+

ps : attention aux cyclistes ou bon départ selon le cas :)
 

Discussions similaires

Réponses
1
Affichages
109
Compte Supprimé 979
C

Statistiques des forums

Discussions
312 198
Messages
2 086 114
Membres
103 121
dernier inscrit
SophieS