Liste de valeurs uniques de la colonne

Le
Gloops
Bonjour tout le monde,

Dans une feuille Excel, on peut demander, dans le menu Données, un
filtre automatique, ce qui permet d'avoir dans une liste déroulante pou=
r
chaque colonne la liste des valeurs figurant dans cette colonne, à
raison d'une fois chacune. Pratique.

Maintenant, si je veux copier la liste de ces valeurs uniques dans une
autre feuille, je me demande quelle est la meilleure manière.

On peut écrire une procédure VBA, si on a le temps.

Ce matin je suis passé par Ms-Query, et j'ai tapé une requête SQL d=
e
type SELECT DISTINCT. Impeccable comme résultat, à condition de nomme=
r
le champ, de sauvegarder le fichier, de charger l'outil, de préciser le=

champ, et de taper la requête.

Je ne suis pas très sûr, mais il me semble qu'il y a quelques année=
s
j'ai utilisé un moyen plus élégant.

Qui dit mieux ?
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jacky
Le #5088151
Bonsoir,

Qui dit mieux ?
L'enregistreur de macro....
'------------
Sub Macro1()
Sheets("Feuil2").Select
Sheets("Feuil1").Range("A1:A100").AdvancedFilter Action:=xlFilterCopy, _
CopyToRange:=Range("A1"), Unique:=True
End Sub
'--------------
Copie de feuille1 a1:a100 une liste sans doublon vers la feuille 2 cellule
A1
--
Salutations
JJ


"Gloops"
Bonjour tout le monde,

Dans une feuille Excel, on peut demander, dans le menu Données, un
filtre automatique, ce qui permet d'avoir dans une liste déroulante pour
chaque colonne la liste des valeurs figurant dans cette colonne, à
raison d'une fois chacune. Pratique.

Maintenant, si je veux copier la liste de ces valeurs uniques dans une
autre feuille, je me demande quelle est la meilleure manière.

On peut écrire une procédure VBA, si on a le temps.

Ce matin je suis passé par Ms-Query, et j'ai tapé une requête SQL de
type SELECT DISTINCT. Impeccable comme résultat, à condition de nommer
le champ, de sauvegarder le fichier, de charger l'outil, de préciser le
champ, et de taper la requête.

Je ne suis pas très sûr, mais il me semble qu'il y a quelques années
j'ai utilisé un moyen plus élégant.

Qui dit mieux ?
Gloops
Le #5084931
Ah, intéressant, merci.

Je regarde ça demain.
____________________________________
Jacky a écrit, le 05/12/2007 23:15 :
Bonsoir,

Qui dit mieux ?
L'enregistreur de macro....
'------------
Sub Macro1()
Sheets("Feuil2").Select
Sheets("Feuil1").Range("A1:A100").AdvancedFilter Action:=xlFilter Copy, _
CopyToRange:=Range("A1"), Unique:=True
End Sub
'--------------
Copie de feuille1 a1:a100 une liste sans doublon vers la feuille 2 cell ule
A1


Gloops
Le #5385981
[Utilisation de la méthode AdvancedFilter de l'objet Range]

Bonsoir,

Voilà qui mérite probablement encore un peu de temps, je regarderai
Lundi. Cet après-midi j'ai appliqué ça sans problème sur une peti te
feuille, mais ce matin, sur une feuille plus lourde, j'obtenais une
copie pure et simple de la source, avec les quinze exemplaires de la
première valeur, les douze de la deuxième ... Le tout en ayant bien
prêté attention à l'argument Unique:=True

Maintenant que j'ai un peu de recul, je réalise qu'il faudra que
j'essaie sans mise en forme. Dans le fond, je considérais comme évide nt
que je cherchais des occurrences uniques d'une valeur, mais après tout,
peut-être bien que "Dupont" écrit en noir, graisse normale, et "Dupon t"
écrit en bleu et en gras, ça fait deux valeurs ?

L'essai que j'ai fait cet après-midi ne comportait pas de mise en forme .

A propos, si on parle d'enregistreur de macro, c'est pour faire quelque
chose qu'on peut faire avec l'interface utilisateur ? Dans ce cas, commen t ?


(Je me suis aussi bagarré avec des erreurs 1004, mais parce que j'ai
oublié de mettre la feuille en préfixe du champ ; ah oui et il faut
veiller à ce que le champ cible soit vide, aussi -surtout la deuxième fois.)
_____________________________________
Jacky a écrit, le 05/12/2007 23:15 :
Bonsoir,

Qui dit mieux ?
L'enregistreur de macro....
'------------
Sub Macro1()
Sheets("Feuil2").Select
Sheets("Feuil1").Range("A1:A100").AdvancedFilter Action:=xlFilter Copy, _
CopyToRange:=Range("A1"), Unique:=True
End Sub
'--------------
Copie de feuille1 a1:a100 une liste sans doublon vers la feuille 2 cell ule
A1


Publicité
Poster une réponse
Anonyme