Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Regrouper des valeurs uniques

3 réponses
Avatar
Flag
Bonjour,

J'ai une base de données sous le format suivant:

Article: couleur:
Chapeau bleu
Chapeau bleu
Chapeau rouge
Chapeau jaune
Chapeau jaune
Chapeau bleu
Tuque bleu
Tuque Jaune
Tuque jaune
Tuque jaune

Je veux créer un tableau me donnant l'information suivante:
Chapeau Bleu Rouge Jaune
Tuque Bleu Jaune

En fait je ne veux pas connaître la quantité de chacun des artiques mais les
couleurs qui sont disponibles...
C'est comme de faire un tableau croisé dynamique mais en énumérant les
valeurs possibles.

Est-ce que vous pouvez m'aider?
Ça peut être un code VB....

Merci


--
Flag
Excel 2007
Windows xp

3 réponses

Avatar
JB
Bonsoir,

Sub Essai()
[D:E].Clear
[A1:B1000].AdvancedFilter Action:=xlFilterCopy, CopyToRange:=[D1],
Unique:=True
Set mondico = CreateObject("Scripting.Dictionary")
For Each c In Range("d2", [d65000].End(xlUp))
If Not mondico.Exists(c.Value) Then
mondico.Add c.Value, c.Offset(0, 1).Value
Else
temp = mondico.Item(c.Value)
mondico.Remove (c.Value)
mondico.Add c.Value, temp & " " & c.Offset(0, 1)
End If
Next c
[h2].Resize(mondico.Count, 1) = Application.Transpose(mondico.keys)
[i2].Resize(mondico.Count, 1) = Application.Transpose(mondico.items)
[D:E].Clear
End Sub

http://cjoint.com/?druFebYCU8

JB
http://boisgontierjacques.free.fr/


On 17 mar, 19:53, Flag wrote:
Bonjour,

J'ai une base de données sous le format suivant:

Article:          couleur:
Chapeau         bleu
Chapeau         bleu
Chapeau         rouge
Chapeau         jaune
Chapeau         jaune
Chapeau         bleu
Tuque             bleu
Tuque             Jaune
Tuque             jaune
Tuque             jaune

Je veux créer un tableau me donnant l'information suivante:
Chapeau     Bleu Rouge Jaune
Tuque         Bleu Jaune

En fait je ne veux pas connaître la quantité de chacun des artiques ma is les
couleurs qui sont disponibles...
C'est comme de faire un tableau croisé dynamique mais en énumérant l es
valeurs possibles.

Est-ce que vous pouvez m'aider?
Ça peut être un code VB....

Merci

--
Flag
Excel 2007
Windows xp


Avatar
Flag
Merci beaucoup JB!

Ça fonctionne à merveille!
--


Bonsoir,

Sub Essai()
[D:E].Clear
[A1:B1000].AdvancedFilter Action:=xlFilterCopy, CopyToRange:=[D1],
Unique:=True
Set mondico = CreateObject("Scripting.Dictionary")
For Each c In Range("d2", [d65000].End(xlUp))
If Not mondico.Exists(c.Value) Then
mondico.Add c.Value, c.Offset(0, 1).Value
Else
temp = mondico.Item(c.Value)
mondico.Remove (c.Value)
mondico.Add c.Value, temp & " " & c.Offset(0, 1)
End If
Next c
[h2].Resize(mondico.Count, 1) = Application.Transpose(mondico.keys)
[i2].Resize(mondico.Count, 1) = Application.Transpose(mondico.items)
[D:E].Clear
End Sub

http://cjoint.com/?druFebYCU8

JB
http://boisgontierjacques.free.fr/


On 17 mar, 19:53, Flag wrote:
Bonjour,

J'ai une base de données sous le format suivant:

Article: couleur:
Chapeau bleu
Chapeau bleu
Chapeau rouge
Chapeau jaune
Chapeau jaune
Chapeau bleu
Tuque bleu
Tuque Jaune
Tuque jaune
Tuque jaune

Je veux créer un tableau me donnant l'information suivante:
Chapeau Bleu Rouge Jaune
Tuque Bleu Jaune

En fait je ne veux pas connaître la quantité de chacun des artiques mais les
couleurs qui sont disponibles...
C'est comme de faire un tableau croisé dynamique mais en énumérant les
valeurs possibles.

Est-ce que vous pouvez m'aider?
Ça peut être un code VB....

Merci

--
Flag
Excel 2007
Windows xp






Avatar
Fredo P.
Bonsoir
Si cela convient, Il existe le tri élaboré , une ligne de titre doit être
présente en tête de la base de données ainsi qu'en tête de la plage de
destination. La disposition ne sera pas celle que tu souhaites.

Sub TriValUnique()

Range("A1:B12").AdvancedFilter Action:=xlFilterCopy,
CopyToRange:=Range( _
"C1:D1"), Unique:=True

End Sub
--

A1 B1 C1 D1
Article: couleur: Article Couleur
Chapeau bleu
Chapeau bleu
Chapeau rouge
Chapeau jaune
Chapeau jaune
Chapeau bleu
Tuque bleu
Tuque Jaune
Tuque jaune
Tuque jaune