Tri sur plusieurs colonnes excel 2007

Le
kristof44
Bonjour,
Je souhaite faire un tri sur plusieurs colonnes, j'ai généré le code =
suivant qui fonctionne mais je pense qu'il y a beaucoup mieux à faire "pl=
us propre".
Que me conseillez vous ?

Range("Y1").Formula = "=CONCATENATE(RC[-24],RC[-23],RC[-22],RC[-10]=
)"
Range("Y1").Select
Selection.Copy
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
ActiveSheet.Paste
Application.CutCopyMode = False
Columns("Y:Y").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, Ski=
pBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add Key:=Range("Y=
1"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortTextAsNumbers
With ActiveWorkbook.Worksheets("Feuil1").Sort
.SetRange Range("A2").SpecialCells(xlLastCell)
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Selection.Delete Shift:=xlToLeft

Merci à vous.
Questions / Réponses high-tech
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
kristof44
Le #25296362
En fait ... ça ne fonctionne pas :( ça ne plante pas ... Mais le tri ne se'effectue pas :( Besoin d'aide. Merci.
MichD
Le #25296392
Bonjour,

| Que me conseillez vous ?

D'apprendre à poser une question.

A ) Quel est le nom de l'onglet sur lequel tu travailles

B ) Quelle est l'étendue de la plage de cellules sur laquelle
tu veux effectuer un tri. (Son adresse)

C ) Est-ce que cette plage a comme première ligne des
étiquettes de colonnes? OUI ou NON?

D ) Sur quelle colonne de cette plage veux-tu effectuer un tri?

E ) Est-ce que le tri doit respecter un ordre particulier?

De trouver du code qui ne fonctionne pas, ce n'est pas trop difficile,
par contre, deviner ce que le demandeur désire à partir d'un
code qui ne fonctionne pas, c'est une tâche titanesque!



MichD
---------------------------------------------------------------
kristof44
Le #25296422
MichD,
Désolé pour le manque de précisions.

Actuellement l'onglet n'a pas de nom Feuil1.
La plage concernée va de la cellule A1 à la dernière cellule du table au.
La dernière colonne étant X.
Le tableau ayant des entêtes de colonnes sur la première ligne .
Le tri devant s'effectuer en ordre croissant suivant les colonnes A B C et O.
Le nombre de lignes est variable.
MichD
Le #25296442
Tu veux quelque chose du genre sinon
précise ta pensée sur le type de tri que tu désires!

Ceci s'applique sur une version d'Office 2007 ou plus récent!

'-------------------------------------------------------
Sub test()
Dim Rg As Range, Sh As Worksheet

Set Sh = Worksheets("Feuil2")

With Sh
DerLig = .Range("A:X").Find("*", LookIn:=xlValues, _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
Set Rg = .Range("A1:X" & DerLig)
End With

With Sh
.Sort.SortFields.Clear
.Sort.SortFields.Add Key:=.Range("A2:A" & DerLig), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.Sort.SortFields.Add Key:=.Range("B2:B" & DerLig), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.Sort.SortFields.Add Key:=.Range("C2:C" & DerLig), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.Sort.SortFields.Add Key:=.Range("O2:O" & DerLig), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With .Sort
.SetRange Rg
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End With
End Sub
'-------------------------------------------------------



MichD
---------------------------------------------------------------
kristof44
Le #25296502
Merci MichD, cela me convient tout à fait.
Cela s'applique à une version 2007. Je n'ai pas l'habitude de travailler avec.
Beaucoup de choses ont changées (et heureusement) depuis 2003. Notamment au niveau des possibilités de tris.
Ta réponse serait différente pour une version 2010 ?
MichD
Le #25296582
| Ta réponse serait différente pour une version 2010 ?

****NON.



MichD
---------------------------------------------------------------
Publicité
Poster une réponse
Anonyme