Répétitions de données ds une colonne

ZEZEZE

XLDnaute Nouveau
Bonjour,

Je dispose d'une ColonneA qui contient 2500 items environ, avec en regard en ColonneB, des références que l'on peut trouver dans une liste. Hors je voudrais que chaque item de la ColonneA dispose en regard l' ENSEMBLE des références que j'ai dans la liste.
En pièce jointe, un fichier que j'espère assez clair.
Merci de votre disponibilité.
Pierre
 

Pièces jointes

  • Classeur1.xls
    17.5 KB · Affichages: 66
  • Classeur1.xls
    17.5 KB · Affichages: 74
  • Classeur1.xls
    17.5 KB · Affichages: 69
G

Guest

Guest
Re : Répétitions de données ds une colonne

Bonsoir,

Voici une macro qui le fera:
Code:
[COLOR=BLUE]Sub[/COLOR] Begaiement()
[COLOR=BLUE]Dim[/COLOR] i [COLOR=BLUE]As[/COLOR] [COLOR=BLUE]Long[/COLOR]
    [COLOR=BLUE]With[/COLOR] Sheets([i]"Feuil1"[/i])
        .Range([i]"H:I"[/i]).ClearContents
        .Range([i]"H1:I1"[/i]) = Array([i]"ColonneA"[/i], [i]"ColonneB"[/i])
        [COLOR=BLUE]Dim[/COLOR] t: t = .Range([i]"A2:A"[/i] & .Range([i]"A"[/i] & .Rows.Count).[COLOR=BLUE]End[/COLOR](xlUp).Row)
        [COLOR=BLUE]Dim[/COLOR] u: u = .Range([i]"E2:E"[/i] & .Range([i]"E"[/i] & .Rows.Count).[COLOR=BLUE]End[/COLOR](xlUp).Row)
        [COLOR=BLUE]For[/COLOR] i = 1 To [COLOR=BLUE]UBound[/COLOR](t)
            [COLOR=BLUE]With[/COLOR] .Range([i]"H"[/i] & .Rows.Count).[COLOR=BLUE]End[/COLOR](xlUp)(2).Resize([COLOR=BLUE]UBound[/COLOR](u))
                .Value = t(i, 1)
                .Offset(, 1) = u
            [COLOR=BLUE]End[/COLOR] [COLOR=BLUE]With[/COLOR]
        [COLOR=BLUE]Next[/COLOR]
    [COLOR=BLUE]End[/COLOR] [COLOR=BLUE]With[/COLOR]
[COLOR=BLUE]End[/COLOR] [COLOR=BLUE]Sub[/COLOR]

A+
 

ZEZEZE

XLDnaute Nouveau
Re : Répétitions de données ds une colonne

Presque HASCO, cependant:

Je voudrais qu'en colonne H, je ne retrouve qu' 1 SEULE FOIS la donnée qui se trouve en ColonneA.
Avec ta macro, les références d ela liste sont répétées autant de fois que la même donnée se trouve en ColonneA
En même temps, je voudrais que le résultat se retrouve dans un autre onglet.

Merci à toi,

Pierre
 
G

Guest

Guest
Re : Répétitions de données ds une colonne

re,

voili voilou, à toi de mettre les bon noms de plage et ou de feuille
Tri de la colonne A et B en plus
Code:
[COLOR=blue]Sub[/COLOR] Begaiement()
    [COLOR=blue]Dim[/COLOR] i [COLOR=blue]As[/COLOR] [COLOR=blue]Long[/COLOR]
    [COLOR=blue]With[/COLOR] Sheets([I]"Feuil1"[/I])
        .Range([I]"A:B"[/I]).Sort Key1:=Range([I]"A2"[/I]), Order1:=xlAscending, Header:=xlYes, _
                           OrderCustom:=1, MatchCase:=[COLOR=blue]False[/COLOR], Orientation:=xlTopToBottom
        .Range([I]"H:I"[/I]).ClearContents
        .Range([I]"H1:I1"[/I]) = Array([I]"ColonneA"[/I], [I]"ColonneB"[/I])
        [COLOR=blue]Dim[/COLOR] t: t = .Range([I]"A2:A"[/I] & .Range([I]"A"[/I] & .Rows.Count).[COLOR=blue]End[/COLOR](xlUp).Row)
        [COLOR=blue]Dim[/COLOR] u: u = .Range([I]"E2:E"[/I] & .Range([I]"E"[/I] & .Rows.Count).[COLOR=blue]End[/COLOR](xlUp).Row)
    [COLOR=blue]End[/COLOR] [COLOR=blue]With[/COLOR]
    [COLOR=blue]With[/COLOR] Sheets([I]"Feuil2"[/I])
        [COLOR=blue]For[/COLOR] i = 1 To [COLOR=blue]UBound[/COLOR](t)
            [COLOR=blue]With[/COLOR] .Range([I]"H"[/I] & .Rows.Count).[COLOR=blue]End[/COLOR](xlUp)(2).Resize([COLOR=blue]UBound[/COLOR](u))
                .Value = t(i, 1)
                .Offset(, 1) = u
            [COLOR=blue]End[/COLOR] [COLOR=blue]With[/COLOR]
            [COLOR=blue]If[/COLOR] i < [COLOR=blue]UBound[/COLOR](t) - 1 [COLOR=blue]Then[/COLOR]
                [COLOR=blue]Do[/COLOR] [COLOR=blue]While[/COLOR] t(i, 1) = t(i + 1, 1): i = i + 1: [COLOR=blue]Loop[/COLOR]
            [COLOR=blue]End[/COLOR] [COLOR=blue]If[/COLOR]
        [COLOR=blue]Next[/COLOR]
    [COLOR=blue]End[/COLOR] [COLOR=blue]With[/COLOR]
[COLOR=blue]End[/COLOR] [COLOR=blue]Sub[/COLOR]

A+
 

Discussions similaires

Statistiques des forums

Discussions
312 038
Messages
2 084 820
Membres
102 679
dernier inscrit
Brice007lc