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

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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 😕 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

Dernière édition:
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:
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 😕
 
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

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"
 
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

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

Dernière édition:
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

Dernière édition:
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 🙂
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
995
Réponses
1
Affichages
437
Compte Supprimé 979
C
Réponses
26
Affichages
2 K
Retour