Macro de tri sur trois données

FraggleRock26

XLDnaute Nouveau
Bonjour,

Je bloque de nouveau sur un probleme...

J'ai fait une macro me permettant de trier mon planning selon deux critéres "dates" et "heures" ce qui me donne un ordre croissant par jours, de l'excursion la plus matinale jusqu'a la plus tardive... (voir fichier joint : ce que j'ai)

Mais pour des raisons pratiques, il me faudrait en fait un tri plus complexe, que je n'arrive pas à faire, pour avoir ce planning trié toujours par "dates" mais ensuite par "bateaux" et "par heures de sortie" (voir fichier joint : ce que je veux).

Mes impératifs de tri sont :
tri des colonnes A à AA et tri des lignes de 2 à 999 (la premiére ligne étant figée)


Je ne sais pas si j'ai été bien explicite... :eek:
 

Pièces jointes

  • exemple tri heure date bateaux.xlsx
    19.3 KB · Affichages: 48

Modeste geedee

XLDnaute Barbatruc
Re : Macro de tri sur trois données

Bonsour®

???
J'ai fait une macro me permettant de trier mon planning
pas de macro dans le fichier (*.xlsx) exemple fourni...

par tri personnalisé :
Capture.JPG
pour une macro
utiliser l'enregistreur :
Enregistrer une macro
:rolleyes:
 

Pièces jointes

  • Capture.JPG
    Capture.JPG
    47.3 KB · Affichages: 47
  • Capture.JPG
    Capture.JPG
    47.3 KB · Affichages: 49
Dernière édition:

FraggleRock26

XLDnaute Nouveau
Re : Macro de tri sur trois données

Bonjour.

Dans le tri tel que vous le demandez le bateau MS Anne Marie ne devrait pas se trouver tout à la fin comme vous le montrez dans la feuille "ce que je veux"

Peut être bien, puisque ce tri je l'ai fait manuellement en déplaçant les cellules, donc je ne sais pas ce que donnerais ce tri fait de façon automatique....
 

FraggleRock26

XLDnaute Nouveau
Re : Macro de tri sur trois données

Oui Modeste, pas de macro dans l'exemple car sur le véritable fichier il s'agit d'une macro "enregistrée" où je fait des copier/coller de colonnes avec des tris de A à Z entre chaque, c'est donc une macro pourrie que je ne pensais pas utilde de joindre à l'exemple :rolleyes:
 

Modeste geedee

XLDnaute Barbatruc
Re : Macro de tri sur trois données

Bonsour®
:mad:
Brute d'enregistrement :
VB:
Sub Macro1()
    Range("A2").Select
    ActiveWorkbook.Worksheets("ce que j'ai").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("ce que j'ai").Sort.SortFields.Add Key:=Range( _
        "H2:H8"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
    ActiveWorkbook.Worksheets("ce que j'ai").Sort.SortFields.Add Key:=Range( _
        "G2:G8"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
    ActiveWorkbook.Worksheets("ce que j'ai").Sort.SortFields.Add Key:=Range( _
        "I2:I8"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
    With ActiveWorkbook.Worksheets("ce que j'ai").Sort
        .SetRange Range("A1:AA8")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub
 

FraggleRock26

XLDnaute Nouveau
Re : Macro de tri sur trois données

Merci Modeste, mais ça ne marche pas quand j'enregistre cette macro sur mon classeur Planning.

Je pense déja c'est que dans ta macro c'est nommé "Ce que j'ai" en fait il faut que cela s'applique sur la feuille active (l'un des 12 mois de l'année ou fauille planning général...) et ensuite cela doit trier l'intégralité des colonnes en commençant par la A en se terminant par la AA.

En testant j'ai eu l'impression que cela ne s'effectuait qu sur les 5 ou 6 premiéres lignes de la feuille mais pas sur toutes...
 

Modeste geedee

XLDnaute Barbatruc
Re : Macro de tri sur trois données

Bonsour®
dans la macro il faut adapter :
le nom au nom de la feuille que l'on doit traiter :Worksheets("ce que j'ai") en . Worksheets("leNomQuiVaBien") ou-bien ActiveSheet
la plage concernée : "H2:H8" en H2:H?
de même pour G et I

les Noms de colonnes doivent correspondre impérativement et respectivement aux noms de l'exemple

???
ensuite cela doit trier l'intégralité des colonnes en commençant par la A en se terminant par la AA.
tu veux trier chaque colonne indépendamment des autres ??? :mad:
 

FraggleRock26

XLDnaute Nouveau
Re : Macro de tri sur trois données

Alors aprés avoir un petit peu regardé la Macro de plus prés, j'ai changé dans la macro le nom de la feuille et j'ai réussi à modifier pour prendre en compte toutes les lignes de la 2 à la 999.

Par contre ce que je ne sais pas faire c'est de faire en sorte que je puisse appliquer cette macro sur la feuille sur laquelle je me trouve, en fait que cela classe la "feuille active" ...

Merci déja pour cette grande avancée ;)
 

FraggleRock26

XLDnaute Nouveau
Re : Macro de tri sur trois données

Bonsour®
dans la macro il faut adapter :
le nom au nom de la feuille que l'on doit traiter :Worksheets("ce que j'ai") en . Worksheets("leNomQuiVaBien") ou-bien ActiveSheet
la plage concernée : "H2:H8" en H2:H?
de même pour G et I

les Noms de colonnes doivent correspondre impérativement et respectivement aux noms de l'exemple

???

tu veux trier chaque colonne indépendamment des autres ??? :mad:

Merci on a écrit en même temps...
Ok donc il faut juste que je mette "ActiveSheet" je vais le faire.

Trier indépendement non, il faut juste que lorsque le tri se fasse, j'ai bien toutes les lignes de A à AA qui se trient, que je ne me retrouve pas avec les infos de la ligne 4 colonne U qui se retrouveraient ensuite pas à la bonne place...

Dur d'expliquer cela, je vais faire des tests voir si ça marche correctement mais ça à l'air ;)

Merci vraiment beaucoup ;) ;)
 

FraggleRock26

XLDnaute Nouveau
Re : Macro de tri sur trois données

Alors j'ai du mal avec le ActiveSheet, cela ne marche pas...

Voici ce que j'ai modifié :
Sub Triheuredateforum()
Range("A2").Select
ActiveWorkbook.ActiveSheet.Sort.SortFields.Clear
ActiveWorkbook.ActiveSheet.Sort.SortFields.Add Key:=Range( _
"H2:H999"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
ActiveWorkbook.ActiveSheet.Sort.SortFields.Add Key:=Range( _
"G2:G999"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
ActiveWorkbook.ActiveSheet.Sort.SortFields.Add Key:=Range( _
"I2:I999"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.ActiveSheet.Sort
.SetRange Range("A1:AA999")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
 

FraggleRock26

XLDnaute Nouveau
Re : Macro de tri sur trois données

Bonjour et bonne semaine,

Malgré plusieurs essais différents, ce week-end, pour mettre la macro en ActiveSheet, cela ne fonctionne pas...

alors par rapport à la macro que j'ai mis au dessus, comment dois-je la modifier pour qu'elle s'applique à la feuille active à chaque fois ??

Merci
 

Discussions similaires

  • Résolu(e)
Microsoft 365 Code de tri
Réponses
22
Affichages
490
Réponses
8
Affichages
234

Statistiques des forums

Discussions
312 858
Messages
2 092 872
Membres
105 546
dernier inscrit
DUL57