Tri alphabétique sur plusieurs colonnes

Le
vicho
Bonjour,

J'ai un fichier excel qui comporte plusieurs colonnes (265) remplies de noms et j'aimerais trier chaque colonne par ordre alphabétique indépendamment les unes des autres.
Je sais les trier les unes après les autres mais c'est très long surtout que j'ai 20 feuilles excel de 265 colonnes à traiter!

J'aimerais arriver à un résultat du style :

J'ai : col A Col B ..
a c
c b
b g
e f

Je veux Col A Col B .
a b
b c
c f
e g

Il semblerait qu'il existe une solution en utilisant une macro. N'en ayant jamais fait pouvez-vous me donner des explications détaillées (un genre de macro pour les nuls)

S'il existe une autre solution, je suis preneur.

Merci bien.

Il me tarde de vous lire.

Vincent.
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
isabelle
Le #22512381
bonjour Vincent,

quel est le nom des 20 feuilles ?

isabelle


Le 2010-08-27 16:09, vicho a écrit :
Bonjour,

J'ai un fichier excel qui comporte plusieurs colonnes (265) remplies de noms et
j'aimerais trier chaque colonne par ordre alphabétique indépendamment les unes
des autres.
Je sais les trier les unes après les autres mais c'est très long surtout que
j'ai 20 feuilles excel de 265 colonnes à traiter!

J'aimerais arriver à un résultat du style :

J'ai : col A Col B ........
a c
c b
b g
e f

Je veux Col A Col B ....
a b
b c
c f
e g

Il semblerait qu'il existe une solution en utilisant une macro. N'en ayant
jamais fait pouvez-vous me donner des explications détaillées (un genre de macro
pour les nuls)

S'il existe une autre solution, je suis preneur.

Merci bien.

Il me tarde de vous lire.

Vincent.
vicho
Le #22512461
isabelle a écrit le 27/08/2010 à 22h36 :
bonjour Vincent,

quel est le nom des 20 feuilles ?

isabelle


Le 2010-08-27 16:09, vicho a écrit :
Bonjour,

J'ai un fichier excel qui comporte plusieurs colonnes (265) remplies de noms
et
j'aimerais trier chaque colonne par ordre alphabétique
indépendamment les unes
des autres.
Je sais les trier les unes après les autres mais c'est très long
surtout que
j'ai 20 feuilles excel de 265 colonnes à traiter!

J'aimerais arriver à un résultat du style :

J'ai : col A Col B ........
a c
c b
b g
e f

Je veux Col A Col B ....
a b
b c
c f
e g

Il semblerait qu'il existe une solution en utilisant une macro. N'en ayant
jamais fait pouvez-vous me donner des explications détaillées
(un genre de macro
pour les nuls)

S'il existe une autre solution, je suis preneur.

Merci bien.

Il me tarde de vous lire.

Vincent.




salut

je ne les ai pas elles sont nommees feuille 1 feuille 2... mais meme si je dois faire feuille par feuille ca m'est egal.
merci beaucoup
michel ou sam
Le #22512581
Bonjour,
voici une proposition de macro

Sub Macro1()
'
' Macro enregistrée le 27/08/2010 par Michel

For Each colonne In ActiveSheet.Columns
colonne.Sort Key1:Îlls(1, colonne.Column), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Next
End Sub

Comment faire ? :
Il faut d'abord mettre la macro en place

Une solution pour débuter : (c'est peut être pas la bonne mais ça va bien
quand on débute)

Faire Outils/Macro/nouvelle macro
dans la fenêtre qui s'ouvre tu mets un raccourci en mettant un w derrière
le Ctrl+
puis OK
puis faire Outils/macro/Arrêter l'enregistrement

Ainsi tu viens de créer ta première macro, qui est vide et que tu peux
appeler en appuyant sur les 2 touches Ctrl et w

A présent tu copies ceci (tu sélectionnes et clic droit puis copier)

For Each colonne In ActiveSheet.Columns
colonne.Sort Key1:Îlls(1, colonne.Column), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Next

Tu fais Outils/Macro/Macros
une fenêtre s'ouvre avec le nom de ta macro qui devrait être Macro1
puis tu fais modifier
le texte de ta macro apparaît

ce qui est en vert , c'est du commentaire qui commence toujours par un '

positionnes toi sur une ligne avant le End Sub où il n'y a pas de '
et fais coller

Il suffit à présent de te mettre sur chaque feuille et faire Ctrl+w

Michel

"vicho"
Bonjour,

J'ai un fichier excel qui comporte plusieurs colonnes (265) remplies de
noms et
j'aimerais trier chaque colonne par ordre alphabétique indépendamment les
unes
des autres.
Je sais les trier les unes après les autres mais c'est très long surtout
que
j'ai 20 feuilles excel de 265 colonnes à traiter!

J'aimerais arriver à un résultat du style :

J'ai : col A Col B ........
a c
c b
b g
e f

Je veux Col A Col B ....
a b
b c
c f
e g

Il semblerait qu'il existe une solution en utilisant une macro. N'en ayant
jamais fait pouvez-vous me donner des explications détaillées (un genre de
macro
pour les nuls)

S'il existe une autre solution, je suis preneur.

Merci bien.

Il me tarde de vous lire.

Vincent.
isabelle
Le #22512621
bonjour Vincent,

Sub MonTri()
'en supposant que les feuilles soient nommées Feuil1, Feuil2..... Feuil20
Dim f As Integer, i As Integer
For f = 1 To 20
Sheets("Feuil" & f).Select
For i = 1 To 256
Columns(i).Sort Key1:Îlls(1, i), _
Order1:=xlAscending, _
Header:=xlNo, _
OrderCustom:=1, _
MatchCase:úlse, _
Orientation:=xlTopToBottom, _
DataOption1:=xlSortTextAsNumbers
Next
Next
End Sub


il y a plusieurs méthode pour ouvrir l'éditeur visual basic ou VBE

- soit en cliquant droit sur le nom d'un onglet en bas et en choisissant "voir le code",
- par le menu outils/macros/visual basic editor ou bien en cliquant sur alt+F11.
- l'enregistreur de macros

extrait d'Excelabo
'_______________________________________________________________________________________________
L'enregistreur de macros est un outil de base pour débuter en programmation mais aussi lorsque,
programmateur chevronné, on ne se souvient plus de la syntaxe d'une instruction.
Le principe: vous déclenchez l'enregistreur, vous effectuez une série d'actions, vous arrêtez l'enregistreur.
En "rejouant" la macro enregistrée, les mêmes actions sont répétées.
'_____________________________________________________________________________________________
cela a pour résultat de créer un "Module1" (page code servant à écrire les macro et dans lequel y sera stocké la Macro1 )
c'est sur cette page que tu doit coller la macro MonTri.
pour y accéder sélectionne au menu, Outils, Macros..., sélectionne Macro1 et appuis sur modifier.

isabelle

Le 2010-08-27 17:24, vicho a écrit :
isabelle a écrit le 27/08/2010 à 22h36 :
bonjour Vincent,

quel est le nom des 20 feuilles ?

isabelle


Le 2010-08-27 16:09, vicho a écrit :
Bonjour,

J'ai un fichier excel qui comporte plusieurs colonnes (265) remplies de




noms
et
j'aimerais trier chaque colonne par ordre alphabétique
indépendamment les unes
des autres.
Je sais les trier les unes après les autres mais c'est très long
surtout que
j'ai 20 feuilles excel de 265 colonnes à traiter!

J'aimerais arriver à un résultat du style :

J'ai : col A Col B ........
a c
c b
b g
e f

Je veux Col A Col B ....
a b
b c
c f
e g

Il semblerait qu'il existe une solution en utilisant une macro. N'en ayant
jamais fait pouvez-vous me donner des explications détaillées
(un genre de macro
pour les nuls)

S'il existe une autre solution, je suis preneur.

Merci bien.

Il me tarde de vous lire.

Vincent.




salut

je ne les ai pas elles sont nommees feuille 1 feuille 2... mais meme si je dois
faire feuille par feuille ca m'est egal.
merci beaucoup
vicho
Le #22512681
isabelle a écrit le 27/08/2010 à 23h51 :
bonjour Vincent,

Sub MonTri()
'en supposant que les feuilles soient nommées Feuil1, Feuil2.....
Feuil20
Dim f As Integer, i As Integer
For f = 1 To 20
Sheets("Feuil" & f).Select
For i = 1 To 256
Columns(i).Sort Key1:Îlls(1, i), _
Order1:=xlAscending, _
Header:=xlNo, _
OrderCustom:=1, _
MatchCase:úlse, _
Orientation:=xlTopToBottom, _
DataOption1:=xlSortTextAsNumbers
Next
Next
End Sub


il y a plusieurs méthode pour ouvrir l'éditeur visual basic ou
VBE

- soit en cliquant droit sur le nom d'un onglet en bas et en choisissant
"voir le code",
- par le menu outils/macros/visual basic editor ou bien en cliquant sur
alt+F11.
- l'enregistreur de macros

extrait d'Excelabo
'_______________________________________________________________________________________________
L'enregistreur de macros est un outil de base pour débuter en
programmation mais aussi lorsque,
programmateur chevronné, on ne se souvient plus de la syntaxe d'une
instruction.
Le principe: vous déclenchez l'enregistreur, vous effectuez une
série d'actions, vous arrêtez l'enregistreur.
En "rejouant" la macro enregistrée, les mêmes actions
sont répétées.
'_____________________________________________________________________________________________
cela a pour résultat de créer un "Module1" (page code
servant à écrire les macro et dans lequel y sera stocké la
Macro1 )
c'est sur cette page que tu doit coller la macro MonTri.
pour y accéder sélectionne au menu, Outils, Macros...,
sélectionne Macro1 et appuis sur modifier.

isabelle

Le 2010-08-27 17:24, vicho a écrit :
isabelle a écrit le 27/08/2010 à 22h36 :
bonjour Vincent,

quel est le nom des 20 feuilles ?

isabelle


Le 2010-08-27 16:09, vicho a écrit :
Bonjour,

J'ai un fichier excel qui comporte plusieurs colonnes (265) remplies de






noms
et
j'aimerais trier chaque colonne par ordre alphabétique
indépendamment les unes
des autres.
Je sais les trier les unes après les autres mais c'est très
long
surtout que
j'ai 20 feuilles excel de 265 colonnes à traiter!

J'aimerais arriver à un résultat du style :

J'ai : col A Col B ........
a c
c b
b g
e f

Je veux Col A Col B ....
a b
b c
c f
e g

Il semblerait qu'il existe une solution en utilisant une macro. N'en ayant
jamais fait pouvez-vous me donner des explications détaillées
(un genre de macro
pour les nuls)

S'il existe une autre solution, je suis preneur.

Merci bien.

Il me tarde de vous lire.

Vincent.






salut

je ne les ai pas elles sont nommees feuille 1 feuille 2... mais meme si je
dois
faire feuille par feuille ca m'est egal.
merci beaucoup




Isabelle,

Merci pour ta rapidité. J'ai essayé de tout suivre à la lettre, cependant, il semble qu'il y ait une erreur :

Message : Erreur de compilation : erreur de syntaxe
Voila mon script :

Sub MonTri()
'en supposant que les feuilles soient nommées Feuil1, Feuil2..... Feuil20
Dim f As Integer, i As Integer
For f = 1 To 4
Sheets("Feuil" & f).Select
For i = 1 To 314
Columns(i).Sort Key1:Îlls(1, i), _
Order1:=xlAscending, _
Header:=xlNo, _
OrderCustom:=1, _
MatchCase:úlse, _
Orientation:=xlTopToBottom, _
DataOption1:=xlSortTextAsNumbers
Next
Next
End Sub


Je l'ai d'abord testé sur 4 feuilles.

Merci encore.
vicho
Le #22512761
michel ou sam a écrit le 27/08/2010 à 23h36 :
Bonjour,
voici une proposition de macro

Sub Macro1()
'
' Macro enregistrée le 27/08/2010 par Michel

For Each colonne In ActiveSheet.Columns
colonne.Sort Key1:Îlls(1, colonne.Column), Order1:=xlAscending, Header:=
_
xlGuess, OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Next
End Sub

Comment faire ? :
Il faut d'abord mettre la macro en place

Une solution pour débuter : (c'est peut être pas la bonne mais
ça va bien
quand on débute)

Faire Outils/Macro/nouvelle macro
dans la fenêtre qui s'ouvre tu mets un raccourci en mettant un w
derrière
le Ctrl+
puis OK
puis faire Outils/macro/Arrêter l'enregistrement

Ainsi tu viens de créer ta première macro, qui est vide et que tu
peux
appeler en appuyant sur les 2 touches Ctrl et w

A présent tu copies ceci (tu sélectionnes et clic droit puis
copier)

For Each colonne In ActiveSheet.Columns
colonne.Sort Key1:Îlls(1, colonne.Column), Order1:=xlAscending, Header:=
_
xlGuess, OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Next

Tu fais Outils/Macro/Macros
une fenêtre s'ouvre avec le nom de ta macro qui devrait être Macro1
puis tu fais modifier
le texte de ta macro apparaît

ce qui est en vert , c'est du commentaire qui commence toujours par un '

positionnes toi sur une ligne avant le End Sub où il n'y a pas de '
et fais coller

Il suffit à présent de te mettre sur chaque feuille et faire
Ctrl+w

Michel

"vicho" a écrit dans le
message de news:

Bonjour,

J'ai un fichier excel qui comporte plusieurs colonnes (265) remplies de
noms et
j'aimerais trier chaque colonne par ordre alphabétique
indépendamment les
unes
des autres.
Je sais les trier les unes après les autres mais c'est très long
surtout
que
j'ai 20 feuilles excel de 265 colonnes à traiter!

J'aimerais arriver à un résultat du style :

J'ai : col A Col B ........
a c
c b
b g
e f

Je veux Col A Col B ....
a b
b c
c f
e g

Il semblerait qu'il existe une solution en utilisant une macro. N'en ayant
jamais fait pouvez-vous me donner des explications détaillées
(un genre de
macro
pour les nuls)

S'il existe une autre solution, je suis preneur.

Merci bien.

Il me tarde de vous lire.

Vincent.




Salut michel ou sam!

Merci à toi aussi pour ton aide.

Voila mon script :

Sub michel()
'
' michel Macro
'
' Touche de raccourci du clavier: Ctrl+o
'
For Each colonne In ActiveSheet.Columns
colonne.Sort Key1:Îlls(1, colonne.Column), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Next
End Sub

J'ai aussi essayé avec ta macro.
J'ai eu un message d'erreur : Erreur de compilation : erreur de syntaxe

De "colonne.Sort Key1....." à " ...DataOption1:=xlSortNormal" le texte est écrit en rouge. Je suppose que l'erreur de syntaxe se trouve dans ce passage.

Merci encore et à + j'espère.
isabelle
Le #22512871
bonjour Vincent,

je t'ai fait un petit modele http://cjoint.com/?iCbjLeYuYB
@+
isabelle

,

Merci pour ta rapidité. J'ai essayé de tout suivre à la lettre, cependant, il
semble qu'il y ait une erreur :

Message : Erreur de compilation : erreur de syntaxe
Voila mon script :

Sub MonTri()
'en supposant que les feuilles soient nommées Feuil1, Feuil2..... Feuil20
Dim f As Integer, i As Integer
For f = 1 To 4
Sheets("Feuil"& f).Select
For i = 1 To 314
Columns(i).Sort Key1:Îlls(1, i), _
Order1:=xlAscending, _
Header:=xlNo, _
OrderCustom:=1, _
MatchCase:úlse, _
Orientation:=xlTopToBottom, _
DataOption1:=xlSortTextAsNumbers
Next
Next
End Sub


Je l'ai d'abord testé sur 4 feuilles.

Merci encore.
vicho
Le #22512881
isabelle a écrit le 28/08/2010 à 01h11 :
bonjour Vincent,

je t'ai fait un petit modele http://cjoint.com/?iCbjLeYuYB
@+
isabelle

,

Merci pour ta rapidité. J'ai essayé de tout suivre à la
lettre, cependant, il
semble qu'il y ait une erreur :

Message : Erreur de compilation : erreur de syntaxe
Voila mon script :

Sub MonTri()
'en supposant que les feuilles soient nommées Feuil1, Feuil2.....
Feuil20
Dim f As Integer, i As Integer
For f = 1 To 4
Sheets("Feuil"& f).Select
For i = 1 To 314
Columns(i).Sort Key1:Îlls(1, i), _
Order1:=xlAscending, _
Header:=xlNo, _
OrderCustom:=1, _
MatchCase:úlse, _
Orientation:=xlTopToBottom, _
DataOption1:=xlSortTextAsNumbers
Next
Next
End Sub


Je l'ai d'abord testé sur 4 feuilles.

Merci encore.




Isabelle: MERCI !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

J'ai testé ta macro sur mes fichiers et ça marche nikel !
C'est super!

Merci beaucoup!
vicho
Le #22524091
isabelle a écrit le 28/08/2010 à 01h11 :
bonjour Vincent,

je t'ai fait un petit modele http://cjoint.com/?iCbjLeYuYB
@+
isabelle

,

Merci pour ta rapidité. J'ai essayé de tout suivre à la
lettre, cependant, il
semble qu'il y ait une erreur :

Message : Erreur de compilation : erreur de syntaxe
Voila mon script :

Sub MonTri()
'en supposant que les feuilles soient nommées Feuil1, Feuil2.....
Feuil20
Dim f As Integer, i As Integer
For f = 1 To 4
Sheets("Feuil"& f).Select
For i = 1 To 314
Columns(i).Sort Key1:Îlls(1, i), _
Order1:=xlAscending, _
Header:=xlNo, _
OrderCustom:=1, _
MatchCase:úlse, _
Orientation:=xlTopToBottom, _
DataOption1:=xlSortTextAsNumbers
Next
Next
End Sub


Je l'ai d'abord testé sur 4 feuilles.

Merci encore.




Bonjour Isabelle,

je me permet de te recontacter car j'ai un souci avec ta macro. Elle marché au début lorsque j'ai voulu essayer, mais maintenant ça ne fonctionne plus. Ca me dit que mes macros ne sont pas activées. Or me^me en allant dans les paramètres macro et en les activants, ça ne fonctionne plus.
J'ai cherché sur le net une solution mais impossible à trouver. Peut - être pourras-tu m'aider...

D'avance merci
Publicité
Poster une réponse
Anonyme