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

création d'une liste d'éléments distincts *ACH*

2 réponses
Avatar
alain chatellier
Bonjour,
Dans une colonne j'ai une liste de données alphanumériques avec des doublons.

En résultat je souhaite créer, avec une formule matricielle, une liste sans
doublons.

Merci pour votre aide
Cordialement

2 réponses

Avatar
michdenis
En utilisant une tite macro, cela donne ceci :

J'ai supposé que tes données sont sur la feuil1
(nom de la propriété de la feuille dans la fenêtre
de l'éditeur de code et non le nom de l'onglet de la feuille)
En colonne A1:Ax ayant une étiquette de colonne en A1
résultat vers B1:Bx de la même feuille

à toi d'adapter

'----------------------------------
Sub test()
Dim C
Application.ScreenUpdating = False
Application.EnableEvents = False
With Feuil1
derlig = .Range("A" & .Cells.Rows.Count).End(xlUp).Row
With .Range("A1:A" & derlig)
.AdvancedFilter xlFilterInPlace, , , True
End With
With .Range("_FilterDataBase")
.Offset(1).Resize(.Rows.Count - 1). _
SpecialCells(xlCellTypeVisible).Copy _
Feuil1.Range("B1")
End With
.ShowAllData
C = .Range("B1:B" & .Range("B" & .Cells.Rows.Count).End(xlUp).Row)
Call tri(C)
.Range("B1").Resize(UBound(C, 1)) = C
End With
Application.EnableEvents = True

End Sub
'----------------------------------

Ceci tri par ordre croissant le résultat.... si tu as vraiment beaucoup de
données -> il y a aussi Quick sort qui est plus rapide ...
'----------------------------------
Function tri(List)
' Tri croissant
Dim First As Integer, Last As Integer
Dim i As Integer, j As Integer
Dim Temp

First = LBound(List)
Last = UBound(List)
For i = First To Last - 1
For j = i + 1 To Last
If List(i, 1) > List(j, 1) Then
Temp = List(j, 1)
List(j, 1) = List(i, 1)
List(i, 1) = Temp
End If
Next j
Next i
End Function
'----------------------------------




"alain chatellier" a écrit dans
le message de news:
Bonjour,
Dans une colonne j'ai une liste de données alphanumériques avec des
doublons.

En résultat je souhaite créer, avec une formule matricielle, une liste sans
doublons.

Merci pour votre aide
Cordialement
Avatar
michdenis
Si tu as des difficultés avec cette procédure, les
explications soit ici :


Trois hommes, qui après s'être mariés, et avoir eu des enfants, meurent de
façon soudaine.
Ils se retrouvent donc tous les 3 devant St Pierre qui leur dit :
- Ici, comme le paradis est un immense endroit vous aurez une voiture pour
vous déplacer. La marque
de la voiture sera en fonction des fois où vous avez trompé vos femmes.

Donc St Pierre ouvre son grand livre et dit au premier homme :
- Je vois que votre réputation de coureur de jupon est vérifiée. Je plains
votre femme. Mais comme
vous étiez gentil avec elle Dieu vous offre une Renault.

Penaud l'homme part en direction du paradis dans sa Renault.

Alors St Pierre regarde le deuxième homme et dit :
- Vous êtes un peu mieux, vous avez trompé votre femme 2 fois seulement,
Dieu vous offre une
Mercedes.

L'homme heureux part en direction du paradis avec sa Mercedes.

Alors St Pierre regarde le dernier et dit :
- Alors vous, vous êtes un saint, vous n'avez jamais trompé votre femme,
pour vous féliciter Dieu
vous accorde une Lamborghini.

L'homme heureux part tout fier dans sa voiture de rêve.

Le lendemain l'homme à la Renault rencontre l'homme à la Lamborghini,
celui-ci pleurait comme un
enfant sur le capot de sa voiture.
L'homme à la Renault :
- Voyons! Qu'est-ce qu'il se passe ?
L'homme à la Lamborghini :
- Je viens de voir passer ma femme en trottinette !!!