Dans une feuille Excel, on peut demander, dans le menu Donn=E9es, un=20
filtre automatique, ce qui permet d'avoir dans une liste d=E9roulante pou=
r=20
chaque colonne la liste des valeurs figurant dans cette colonne, =E0=20
raison d'une fois chacune. Pratique.
Maintenant, si je veux copier la liste de ces valeurs uniques dans une=20
autre feuille, je me demande quelle est la meilleure mani=E8re.
On peut =E9crire une proc=E9dure VBA, si on a le temps.
Ce matin je suis pass=E9 par Ms-Query, et j'ai tap=E9 une requ=EAte SQL d=
e=20
type SELECT DISTINCT. Impeccable comme r=E9sultat, =E0 condition de nomme=
r=20
le champ, de sauvegarder le fichier, de charger l'outil, de pr=E9ciser le=
=20
champ, et de taper la requ=EAte.
Je ne suis pas tr=E8s s=FBr, mais il me semble qu'il y a quelques ann=E9e=
s=20
j'ai utilis=E9 un moyen plus =E9l=E9gant.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jacky
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" a écrit dans le message de news:
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 ?
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" <gloops@niark.invalid> a écrit dans le message de news:
eAzV2d4NIHA.2000@TK2MSFTNGP05.phx.gbl...
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 ? 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" a écrit dans le message de news:
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
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
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
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
[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
[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
[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