Excel : Uniformisation de 2 listes
spit8fire
-
eriiic Messages postés 24581 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 24581 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour à tous,
Je viens de démarrer un stage donc je suis à nouveau un peu perdu sur Excel, j'espere que vous pourrez m'éclairer. Voici mon problème:
Je dispose de 2 listes de produits dont certains se retrouvent dans les 2 listes d'autres sont présents dans la liste 1 et non dans la liste 2 et vice versa...
Je cherche à uniformiser la liste c'est à dire faire en sorte que Produit AB de liste 1 se retrouve devant Produit AB de liste 2 soit:
...................................................................
LISTE1:
Produit A
Produit AA
Produit AB
Produit B
Produit D
LISTE2:
Produit AB
Produit C
Produit D
..................................................................
LISTE1:
Produit A
Produit AA
Produit AB
Produit B
#
Produit D
LISTE2:
#Case vide
#Case vide
Produit AB
#
Produit C
Produit D
#= Cellule vide
J'espere que je suis assez claire... Je ne trouve pas la formule adéquate, les Recherche V ne permette pas de décaler les produits et laisser des cellules vides.
Merci à tous !
Je viens de démarrer un stage donc je suis à nouveau un peu perdu sur Excel, j'espere que vous pourrez m'éclairer. Voici mon problème:
Je dispose de 2 listes de produits dont certains se retrouvent dans les 2 listes d'autres sont présents dans la liste 1 et non dans la liste 2 et vice versa...
Je cherche à uniformiser la liste c'est à dire faire en sorte que Produit AB de liste 1 se retrouve devant Produit AB de liste 2 soit:
...................................................................
LISTE1:
Produit A
Produit AA
Produit AB
Produit B
Produit D
LISTE2:
Produit AB
Produit C
Produit D
..................................................................
LISTE1:
Produit A
Produit AA
Produit AB
Produit B
#
Produit D
LISTE2:
#Case vide
#Case vide
Produit AB
#
Produit C
Produit D
#= Cellule vide
J'espere que je suis assez claire... Je ne trouve pas la formule adéquate, les Recherche V ne permette pas de décaler les produits et laisser des cellules vides.
Merci à tous !
2 réponses
-
Salut,
Je ne comprend pas, tu cherches à garder dans les deux listes, seulement les produits présents dans les deux listes ?
Si c'est bien ça, cette macro fonctionne :
Sub GarderLesDoublons() Dim ligne, ligne2, i, ii As Integer i = 1 'n° de la premiere ligne de la liste 1 ii = 1 'n° de la premiere ligne de la liste 2 While Cells(i, 1) <> "" 'le 1 correspond au n° de colonne de la liste 1 i = i + 1 Wend While Cells(ii, 2) <> "" 'le 2 correspond au n° de colonne de la liste 2 ii = ii + 1 Wend i = i - 1 ii = ii - 1 For ligne = 1 To i For ligne2 = 1 To ii If Cells(ligne, 1) = Cells(ligne2, 2) Then 'le 1, colonne liste1, 2 colonne liste 2 Cells(ligne, 1) = "" 'idem ici, le 1, colonne de la liste 1, Cells(ligne, 2) = "" 'et 2 colonne de la liste 2 Exit For End If Next Next End Sub
Les hypothèses ici sont que la liste 1 est en colonne A, la liste 2 en colonne B, et que ces deux listes commencent en ligne 1. -
Bonjour,
autre proposition vu que je n'ai pas compris de la même façon :Sub alignerListes() Dim derlig As Long, lig As Long Application.ScreenUpdating = False derlig = [A65536].End(xlUp).Row For lig = 2 To derlig If Cells(lig, 1) < Cells(lig, 2) Then Cells(lig, 2).Insert Shift:=xlDown ElseIf Cells(lig, 1) > Cells(lig, 2) Then Cells(lig, 1).Insert Shift:=xlDown End If Next lig Application.ScreenUpdating = False End Sub
Comme sur ton exemple les 2 listes doivent être triées et ne pas comporter de cellules vides.
Vu la faible longueur de ton exemple pas sûr que tous les cas de figure y étaient et que ça marchera sur des listes plus longues...
Si pb reviens avec un exemple avec pb (cijoint.fr et coller ici le lien fourni)
http://www.cijoint.fr/cjlink.php?file=cj201108/cijV2wsMpI.xls
eric