Tri dans le même ordre qu'une liste donnée

Messages postés
13
Date d'inscription
mercredi 22 mai 2019
Statut
Membre
Dernière intervention
13 juin 2019
- - Dernière réponse : louloubru
Messages postés
13
Date d'inscription
mercredi 22 mai 2019
Statut
Membre
Dernière intervention
13 juin 2019
- 13 juin 2019 à 13:48
Bonjour,

je voudrais trier des colonnes dans une feuille dans le même ordre que l'ordre présent dans une autre feuille.
Je ne vois pas du tout comment faire, je n'ai donc encore rien essayé.
Auriez-vous des pistes ?

J'ai dans un feuille une liste d'évènements triés par date. Dans une autre feuille chaque colonne correspond à un évènement. Je n'ai plus la date dans cette feuille.
J'aimerai trier les colonnes dans l'ordre dans lequel les évènements sont dans la feuille d'avant.

Je n'ai pas de code à donner ...

NB : la liste comme les colonnes sont dynamiques : j'en rajoute parfois, je ne peux donc pas taper l'ordre des colonnes, cet ordre doit venir de la feuil.

En vous remerciant !

Configuration: Windows / Firefox 67.0
Afficher la suite 

8 réponses

Messages postés
13
Date d'inscription
mercredi 22 mai 2019
Statut
Membre
Dernière intervention
13 juin 2019
0
Merci
J'aurai voulu joindre un classeur avec ma situation simplifiée mais je n'ai pas l'impression que ce soit possible ...
JCB40
Messages postés
1107
Date d'inscription
lundi 2 juillet 2018
Statut
Membre
Dernière intervention
15 octobre 2019
134 -
Bonjour
Pour joindre ton fichier tu vas sur ce site tu copies le lien qui te sera donné et tu viens
le coller dans ta réponse
https://www.cjoint.com/
Cordialement
louloubru
Messages postés
13
Date d'inscription
mercredi 22 mai 2019
Statut
Membre
Dernière intervention
13 juin 2019
-
Merci !
Fichier ici : https://www.cjoint.com/c/IFmiFcvIKTi
Il s'agit d'un exemple simplifié de ma situation : je souhaite que mes colonnes dans la feuille 2 soient trier dans le même ordre que celui indiqué en ligne dans la feuille 1.
Attention des évènements seront rajoutés : lignes dans la feuille 1 et colonnes dans la feuille 2 (je les ajoute en même temps par une petite procédure). Le tri doit donc pouvoir prendre en compte les nouveaux éléments éventuels.

Merci beaucoup !
Commenter la réponse de louloubru
Messages postés
1107
Date d'inscription
lundi 2 juillet 2018
Statut
Membre
Dernière intervention
15 octobre 2019
134
0
Merci
Re bonjour

Si j'ai bien compris c'est ce que tu veux avoir
https://www.cjoint.com/c/IFmjlID0gsk
Question: combien de colonnes en feuil1
combien de colonnes en feuil2
Crdlt
louloubru
Messages postés
13
Date d'inscription
mercredi 22 mai 2019
Statut
Membre
Dernière intervention
13 juin 2019
-
Re,

non ce n'est pas ça, en feuille 2 je veux que cela reste en colonne et non en ligne.
Je veux que mes colonnes soient triées : Ev1 puis Ev2 pui Ev3 etc... Dans le même ordre qu'en feuille 1. (où c'est trié selon la date).

Je ne peux pas me servir du nombre de colonnes : le fichier en rajoute.
J'ai une macro qui me rajoute une ligne en feuille 1 et une colonne en feuille 2 qui portent le même nom.
Commenter la réponse de JCB40
Messages postés
1107
Date d'inscription
lundi 2 juillet 2018
Statut
Membre
Dernière intervention
15 octobre 2019
134
0
Merci
un exemple avec macro et bouton
https://www.cjoint.com/c/IFmlAI7wCUk
louloubru
Messages postés
13
Date d'inscription
mercredi 22 mai 2019
Statut
Membre
Dernière intervention
13 juin 2019
-
Merci beaucoup mais cela ne fonctionne pas : si j'ajoute un évènement en feuille 1 et en feuille 2 et appuie sur le bouton il ne trie pas, j'ai une erreur.
louloubru
Messages postés
13
Date d'inscription
mercredi 22 mai 2019
Statut
Membre
Dernière intervention
13 juin 2019
-
Il me semble que rien n'indique la feuille 1 dans votre code ...
Je viens de créer un vecteur contenant les évènements dans l'ordre de la feuille 1 et j'essaie maintenant de trier la feuille 2 selon cet ordre...
Commenter la réponse de JCB40
Messages postés
1107
Date d'inscription
lundi 2 juillet 2018
Statut
Membre
Dernière intervention
15 octobre 2019
134
0
Merci
Quelle erreur tu as?
Commenter la réponse de JCB40
Messages postés
1107
Date d'inscription
lundi 2 juillet 2018
Statut
Membre
Dernière intervention
15 octobre 2019
134
0
Merci
La feuille 1 n'a rien a voir puisque le tri se fait en feuille2
Commenter la réponse de JCB40
Messages postés
1107
Date d'inscription
lundi 2 juillet 2018
Statut
Membre
Dernière intervention
15 octobre 2019
134
0
Merci
Dans ce fichier j'ai mis en feuil2 colonne A de nouvelles données
clique sur le bouton feuil 1 et tu verras qu' en feuil2 les nouvelles données sont à leurs places

https://www.cjoint.com/c/IFmmFKtEYfk
louloubru
Messages postés
13
Date d'inscription
mercredi 22 mai 2019
Statut
Membre
Dernière intervention
13 juin 2019
-
Re bonjour,

nous ne nous sommes pas compris : je souhaite utiliser l'ordre en feuille 1 pour trier la feuille 2.
J'ai un peu avancé depuis : j'ai créer un vecteur qui stocke l'ordre des évènements (ce que je veux trier) de la feuille 1.
Je recherche le moyen de trier la feuille 2 selon ce vecteur que j'ai appelé liste.


J'ai donc un vecteur liste qui contient les en-tête de mes colonnes en feuille2 et je souhaite trier ces colonnes selon cet ordre.
On peut le faire avec sort mais je ne m'en sort pas avec les paramètres de la fonction ....

Ma page de données doit pouvoir s'agrandir donc je l'ai définit comme ceci :


Dim maplage as Range
Dim Dercol As Long
Dim Dernlig As Long
Dernlig = Range("A" & Rows.Count).End(xlUp).Row
Dercol = Cells(1, Cells.Columns.Count).End(xlToLeft).Column
maplage = Range(Cells(1, 1), Cells(Dernlig, Dercol))


Commenter la réponse de JCB40
Messages postés
1107
Date d'inscription
lundi 2 juillet 2018
Statut
Membre
Dernière intervention
15 octobre 2019
134
0
Merci
Est-ce que tu peux envoyer une copie de ton fichier original avec 3ou4 lignes
et tu mets des noms bidons aux endroits stratégiques.
Commenter la réponse de JCB40
Messages postés
13
Date d'inscription
mercredi 22 mai 2019
Statut
Membre
Dernière intervention
13 juin 2019
0
Merci
Bonjour,

merci beaucoup de vous être intéressé à mon problème, j'ai une solution qui fonctionne :


'Tri des colonnes de toutes les feuilles selon l'ordre de ce vecteur
Sheets("ONF_COFOR").Activate
Application.ScreenUpdating = False
For n = LBound(liste) To UBound(liste)
Columns("AJ:AJ").Insert
Next
Dim Col As Integer
Col = 36
For n = LBound(liste) To UBound(liste)
Set C = Rows(1).Find(liste(n), LookIn:=xlValues, lookat:=xlWhole)
Columns(C.Column).Copy Destination:=Cells(1, Col)
Col = Col + 1
Next
For n = 35 + (UBound(liste) + 1) * 2 To UBound(liste) + 37 Step -1
Columns(n).Delete
Next
Application.ScreenUpdating = True


NB : j'ai un +35 car les colonnes que je souhaite trier ne prennent pas toute la feuille concernée : il s'agit de la colonne 35 à l'avant dernière colonne.

Cela me pose cependnat un problème car mes données sont sous forme de tableau et cette solution ne fonction pas avce un tableau, je suis donc onligée d'enlever ma mise en forme tableau.
Or j'ai une autre procédure qui se sert des tableaux ... J'essaie de la modifier ;)
Commenter la réponse de louloubru