Comparer des colonnes

saba

XLDnaute Nouveau
Bonjour,

Je souhaite comparer deux colonnes de noms et décaler les cellules dans ces deux colonnes pour que le résultat donne deux colonnes avec sur la même ligne soit le même nom soit une cellule vide en regard de la cellule nom si celui-ci n'existe que dans une colonne.
Je joins un fichier exemple avec dans l'onglet "avant" la liste brute et dans celui "après" le résultat souhaité.
Merci
 

Pièces jointes

  • LISTE.xls
    14 KB · Affichages: 96
  • LISTE.xls
    14 KB · Affichages: 97
  • LISTE.xls
    14 KB · Affichages: 95

ROGER2327

XLDnaute Barbatruc
Re : Comparer des colonnes

Bonjour saba
Essayez la procédure suivante :
Code:
[COLOR="DarkSlateGray"][B]Sub toto()
Dim oDat1, oDat2, sDat(), i&
Dim ocoll As New Collection, n&, d
[COLOR="SeaGreen"]'[/COLOR]
   With Sheets("Avant")
      oDat1 = .Range(.Cells(1, 1), .Cells(Rows.Count, 1).End(xlUp)).Value
      oDat2 = .Range(.Cells(1, 2), .Cells(Rows.Count, 2).End(xlUp)).Value
   End With
[COLOR="SeaGreen"]'[/COLOR]
   ReDim sDat(1 To 2, 1 To 1)
   sDat(1, 1) = oDat1(1, 1)
   sDat(2, 1) = oDat2(1, 1)
   On Error Resume Next
   For i = 2 To WorksheetFunction.Max(UBound(oDat1, 1), UBound(oDat2, 1))
      ocoll.Add oDat1(i, 1), CStr(oDat1(i, 1))
      ocoll.Add oDat2(i, 1), CStr(oDat2(i, 1))
   Next i
   On Error GoTo 0
   ReDim Preserve sDat(1 To 2, 1 To 1 + ocoll.Count)
   For n = 1 To ocoll.Count
      d = ocoll(n)
      For i = 2 To UBound(oDat1, 1)
         If oDat1(i, 1) = d Then sDat(1, 1 + n) = d: Exit For
      Next i
      For i = 2 To UBound(oDat2, 1)
         If oDat2(i, 1) = d Then sDat(2, 1 + n) = d: Exit For
      Next i
   Next n
[COLOR="SeaGreen"]'[/COLOR]
   With Sheets("Après")
      .Columns("A:B").ClearContents
      .Range("A1").Resize(UBound(sDat, 2), 2).Value = WorksheetFunction.Transpose(sDat)
      .Activate [COLOR="SeaGreen"]'Facultatif.[/COLOR]
   End With
[COLOR="SeaGreen"]'[/COLOR]
End Sub[/B][/COLOR]
ROGER2327
#3722


Vendredi 6 Gidouille 137 (Saint Dieu, retraité, SQ)
2 Messidor An CCXVIII
2010-W24-7T13:34:16Z
 

saba

XLDnaute Nouveau
Re : Comparer des colonnes

Bonjour ROGER2327,

Excellent, ça fonctionne comme je le souhaite. Il ne me reste plus qu'à m'initier au langage VBA pour comprendre ces instructions que je ne me suis contenter que de recopier.
Avec tous mes remerciements
 

Discussions similaires

Réponses
4
Affichages
194

Statistiques des forums

Discussions
312 416
Messages
2 088 247
Membres
103 784
dernier inscrit
Métro-logue