Résultat macro comparaison colonnes en double

xgaudin

XLDnaute Nouveau
Bonjour,
Pas expert en VBA, j'ai récupéré un code pour comparer les valeurs dans 2 colonnes (A et B) et afficher en colonne C les valeurs identiques mais je voudrais que la valeur trouvée ne s'affiche qu'une fois et non 2 fois en C. Pouvez-vous me dire comment modifier le code ?
Par ailleurs, je voudrais également pouvoir faire la même chose sur d'autres données et dans ce cas il s'agit de comparer les valeurs de 2 colonnes (A = Nom et B= Prénom) avec celles de 2 autres colonnes (C = Nom et D = Prénom) et afficher en E et F les noms et prénoms identiques. Tous les codes trouvés sur le net me proposent d'afficher les valeurs différentes ce qui ne me convient pas (j'ai une dizaine de valeurs identiques pour plusieurs milliers de valeurs comparées). A noter que les colonnes à comparer A/B et C/D n'ont pas le même nombre de lignes.
Merci à vous pour l'aide que vous pourrez m'apporter.
Code initial :
Sub ListeDoublons()
Dim Plage As Range, C As Range
Dim Ligne As Long
With Worksheets("feuille1!")
Ligne = 1
Set Plage = .Range("A1").CurrentRegion
For Each C In Plage
If C <> "" Then
If Application.CountIf(Plage, C) <> 1 Then .Range("C" & Ligne) = C.Value: Ligne = Ligne + 1
End If
Next C
End With
End Sub
 

laetitia90

XLDnaute Barbatruc
Re : Résultat macro comparaison colonnes en double

bonjour xgaudin:)
le plus simple mettre un fichier exemple sans données confid..... avec le resultat voulu:)
 

xgaudin

XLDnaute Nouveau
Re : Résultat macro comparaison colonnes en double

Bonjour,
Ci-joint le fichier
La macro "Comparaison" ne me satisfait pas car va au-delà des lignes avec des valeurs. La macro "Doublons" serait parfaite sans affichage des valeurs en double
Merci par avance
 

Fichiers joints

laetitia90

XLDnaute Barbatruc
Re : Résultat macro comparaison colonnes en double

re:)

deja la premiere macro regarderais la 2 qst... dans l'apres midi si personne passe par la:):)

Code:
Sub comparaison()
Dim VA As String, VB As String
For i = 1 To Cells(Rows.Count, 1).End(3).Row
VA = Cells(i, 1) & Cells(i, 2)
For j = 1 To Cells(Rows.Count, 3).End(3).Row
VB = Cells(j, 3) & Cells(j, 4)
If VA = VB Then
MsgBox ("cette personne est présente dans les deux listes => ligne " & j)
End If
Next j: Next i
End Sub
 

xgaudin

XLDnaute Nouveau
Re : Résultat macro comparaison colonnes en double

Merci Laetitia90 pour cette première réponse en espérant que quelqu'un saura m'apporter les éléments permettant de modifier la seconde
 

laetitia90

XLDnaute Barbatruc
Re : Résultat macro comparaison colonnes en double

re :)
pour la 2

Code:
Sub es()
Dim c As Range, m As Object, n As Object
 Application.ScreenUpdating = 0
 Set n = CreateObject("Scripting.Dictionary")
 Set m = CreateObject("Scripting.Dictionary")
 For Each c In Range("a1:b" & Cells.Find("*", , , , , xlPrevious).Row)
  If m.exists(a & c.Value) And c <> "" Then n(a & c.Value) = ""
  m(a & c.Value) = ""
 Next c
 If n.Count > 1 Then [E1].Resize(n.Count, 1) = Application.Transpose(n.keys)
End Sub
 

xgaudin

XLDnaute Nouveau
Re : Résultat macro comparaison colonnes en double

Bonsoir,
Merci pour le travail effectué mais chez moi cela ne fonctionne pas (fichier joint)
Cordialement
 

Fichiers joints

laetitia90

XLDnaute Barbatruc
Re : Résultat macro comparaison colonnes en double

re :)

en fin de compte j'ai inverse les questions:(
en fichier joint

Code:
Sub es()
Dim t(), t1(), t2(), i As Long, x As Long, m As Object, z
 Set m = CreateObject("Scripting.Dictionary")
 t2 = Range("a1:b" & Cells(Rows.Count, 1).End(3).Row)
 t = Range("c1:d" & Cells(Rows.Count, 1).End(3).Row)
 For i = 1 To UBound(t2)
 z = t2(i, 1) & t2(i, 2)
 If Not m.Exists(z) Then m.Add z, z
 Next i
 ReDim t1(1 To UBound(t), 1 To 2)
 For i = 1 To UBound(t)
 z = t(i, 1) & t(i, 2)
 If m.Exists(z) Then
 x = x + 1
 t1(x, 1) = t(i, 1): t1(x, 2) = t(i, 2)
 End If
 Next i
 [E1].Resize(x, 2) = t1
End Sub

le post 6 correspond a la premiere qst...
 

Fichiers joints

Dernière édition:

xgaudin

XLDnaute Nouveau
Re : Résultat macro comparaison colonnes en double

Fonctionne parfaitement
Merci à toi et bonne fin de soirée
Cordialement
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas