Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
 

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
 

Pièces jointes

  • Doublons.xlsm
    49.3 KB · Affichages: 35
  • Doublons.xlsm
    49.3 KB · Affichages: 38

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
 

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
 

Pièces jointes

  • Double_colonnes.xlsm
    17.6 KB · Affichages: 27

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

Pièces jointes

  • Double_colonnes (1).xlsm
    17.5 KB · Affichages: 37
Dernière édition:

Discussions similaires

Réponses
6
Affichages
142
Réponses
3
Affichages
163
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…