lister tous les mots compris dans une plage donnée, sans doublon
Le
Greg

Bonjour,
Je cherche à créer dans une feuilleX une liste sans doublon des éléments
contenus dans une plage donnée d'une autre feuille. Il s'agirait également
de ne pas y voir y figurer une partie des noms.
Exemple:
Dans une feuille Y, on peut lire en colone A à partir de A15:
chat
chien
chat
poule
cochon
poule
cochon
chien
chat
chat
cochon
Dans une feuille X, automatiquement et en ayant spécifié ne pas voir y
apparaitre "cochon", on pourrait lire en colonne B, à partir de B4:
chat
chien
poule
Est-ce possible?
Merci à vous
Greg
Je cherche à créer dans une feuilleX une liste sans doublon des éléments
contenus dans une plage donnée d'une autre feuille. Il s'agirait également
de ne pas y voir y figurer une partie des noms.
Exemple:
Dans une feuille Y, on peut lire en colone A à partir de A15:
chat
chien
chat
poule
cochon
poule
cochon
chien
chat
chat
cochon
Dans une feuille X, automatiquement et en ayant spécifié ne pas voir y
apparaitre "cochon", on pourrait lire en colonne B, à partir de B4:
chat
chien
poule
Est-ce possible?
Merci à vous
Greg
http://cjoint.com/?cCmVTHocuk
JB
On 28 fév, 12:34, "Greg"
Fais un filtre avancé (ou élaboré). Pour le critère, tu mets en D1, le
même entête que celui de ta plage de données (il en faut un) et en D2 :
<>cochon
Spécifie "extraction sans doublon".
Cordialement.
Daniel
- La formule de JB fonctionne très bien:
=INDEX(champ;MIN(SI(champ<>"";SI(NB.SI(A$1:A7;champ)=0;LIGNE(INDIRECT("1:"&LIGNES(champ)));LIGNES(champ)))))
Comment empêcher la formule de prendre en compte le mot "cochon" dans la
liste?
- Le code de JB pourrait être une solution mais je ne souhaite pas trier le
résulat. Il faudrait aussi incorporer une ligne permettant de ne pas prendre
en compte "cochon".
- En ce qui concerne la proposition de Daniel , le fichier de référence ne
fonctionne pas avec des noms de champ et il serait un peu compliqué de
procéder ainsi. La proposition des formules de JB me semble plus adaptée à
la situation. Pour une fois que Daniel n'est pas mon sauveur...
Dans tous les cas, merci beaucoup.
Greg
"Daniel.C" news:
http://cjoint.com/?cCowTMrJ3N
=INDEX(champ;MIN(SI(NB.SI(exclus;champ)=0;SI(champ<>"";SI((NB.SI(A
$1:A1;
champ)=0);LIGNE(INDIRECT("1:"&LIGNES(champ)));LIGNES(champ))))))
Valider avec maj+ctrl+entrée
'Exclus' est un champ qui contient les exclus (cochon,xxx,..)
Fonction perso:
=SansDoublons(champ;exclus)
Function SansDoublons(champ As Range, exclus As Range)
Set mondico = CreateObject("Scripting.Dictionary")
temp = champ
For i = LBound(temp, 1) To UBound(temp, 1)
For j = LBound(temp, 2) To UBound(temp, 2)
If Not mondico.Exists(temp(i, j)) And temp(i, j) <> "" _
And IsError(Application.Match(temp(i, j), exclus, 0)) Then
mondico.Add temp(i, j), temp(i, j)
End If
Next j
Next i
Dim b()
ReDim b(1 To champ.Count)
i = 1
For Each c In mondico.items
b(i) = c
i = i + 1
Next
SansDoublons = Application.Transpose(b)
End Function
JB
On 28 fév, 13:58, "Greg"
Ca fonctionne très bien!
à plus
Greg
"JB" news:
Voir PJ
http://cjoint.com/?cCowTMrJ3N
=INDEX(champ;MIN(SI(NB.SI(exclus;champ)=0;SI(champ<>"";SI((NB.SI(A
$1:A1;
champ)=0);LIGNE(INDIRECT("1:"&LIGNES(champ)));LIGNES(champ))))))
Valider avec maj+ctrl+entrée
'Exclus' est un champ qui contient les exclus (cochon,xxx,..)
Fonction perso:
=SansDoublons(champ;exclus)
Function SansDoublons(champ As Range, exclus As Range)
Set mondico = CreateObject("Scripting.Dictionary")
temp = champ
For i = LBound(temp, 1) To UBound(temp, 1)
For j = LBound(temp, 2) To UBound(temp, 2)
If Not mondico.Exists(temp(i, j)) And temp(i, j) <> "" _
And IsError(Application.Match(temp(i, j), exclus, 0)) Then
mondico.Add temp(i, j), temp(i, j)
End If
Next j
Next i
Dim b()
ReDim b(1 To champ.Count)
i = 1
For Each c In mondico.items
b(i) = c
i = i + 1
Next
SansDoublons = Application.Transpose(b)
End Function
JB
On 28 fév, 13:58, "Greg"