Tri de données

Le
JP
Bonjour,

Toujours pour le meme projet, j'aurai encore besoin de vos lumières.
Quand j'effectue un tri de données j'utilise l'enregistreur de macro mais=
dans la situation présente ca ne fait pas l'affaire.

La macro de tri se trouve dans un module et je souhaiterai pouvoir l'execut=
er de n'importe quelle feuille. Le tri se fait sur 3 niveaux.
Les feuilles se nomment POULE A, POULE B,, POULE H.
La macro actuelle est:

' Copie des plages de résultats points/sets et matches
Union(Range("BW35:BW42"), Range("AX35:AX42"), Range("V35:V42")).Cop=
y
Range("Q28").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,=
SkipBlanks _
:=False, Transpose:=False
'-=
--
' Tri des données pour la recherche du rang
Range("P28:S35").Select
ActiveWorkbook.Worksheets("POULE A").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("POULE A").Sort.SortFields.Add Key:=Range("=
Q28:Q35" _
), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=x=
lSortNormal
ActiveWorkbook.Worksheets("POULE A").Sort.SortFields.Add Key:=Range("=
R28:R35" _
), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=x=
lSortNormal
ActiveWorkbook.Worksheets("POULE A").Sort.SortFields.Add Key:=Range("=
S28:S35" _
), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=x=
lSortNormal
With ActiveWorkbook.Worksheets("POULE A").Sort
.SetRange Range("P28:S35")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With


Comment puis-je simplifier cela?

Merci pour votre aide

JP
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
Jacquouille
Le #25448642
Bonjour
Ne pourrions-nous déménager les poules vers le Perso.xls?
De cette manière, n'importe quel Goupil aurait accès ....



Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"JP" a écrit dans le message de groupe de discussion :


Bonjour,

Toujours pour le meme projet, j'aurai encore besoin de vos lumières.
Quand j'effectue un tri de données j'utilise l'enregistreur de macro mais
dans la situation présente ca ne fait pas l'affaire.

La macro de tri se trouve dans un module et je souhaiterai pouvoir
l'executer de n'importe quelle feuille. Le tri se fait sur 3 niveaux.
Les feuilles se nomment POULE A, POULE B,..., POULE H.
La macro actuelle est:

' Copie des plages de résultats points/sets et matches
Union(Range("BW35:BW42"), Range("AX35:AX42"), Range("V35:V42")).Copy
Range("Q28").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:úlse, Transpose:úlse
'------------------------------------------------------------------------------
' Tri des données pour la recherche du rang
Range("P28:S35").Select
ActiveWorkbook.Worksheets("POULE A").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("POULE A").Sort.SortFields.Add
Key:=Range("Q28:Q35" _
), SortOn:=xlSortOnValues, Order:=xlDescending,
DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("POULE A").Sort.SortFields.Add
Key:=Range("R28:R35" _
), SortOn:=xlSortOnValues, Order:=xlDescending,
DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("POULE A").Sort.SortFields.Add
Key:=Range("S28:S35" _
), SortOn:=xlSortOnValues, Order:=xlDescending,
DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("POULE A").Sort
.SetRange Range("P28:S35")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With


Comment puis-je simplifier cela?

Merci pour votre aide

JP
DanielCo
Le #25448832
Ce code trie la feuille active (non testé) :

' Tri des données pour la recherche du rang
Dim Ligne As Long
With ActiveSheet
Ligne = .Cells(.Rows.Count, 16).End(xlUp).Row
.Sort.SortFields.Clear
.Sort.SortFields.Add Key:=Range("Q28:Q" & Ligne), _
SortOn:=xlSortOnValues, Order:=xlDescending,
DataOption:=xlSortNormal
.Sort.SortFields.Add Key:=Range("R28:R" & Ligne), _
SortOn:=xlSortOnValues, Order:=xlDescending,
DataOption:=xlSortNormal
.Sort.SortFields.Add Key:=Range("S28:S" & Ligne), _
SortOn:=xlSortOnValues, Order:=xlDescending,
DataOption:=xlSortNormal
With .Sort
.SetRange Range("P28:S" & Ligne)
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End With

Daniel


Bonjour,

Toujours pour le meme projet, j'aurai encore besoin de vos lumières.
Quand j'effectue un tri de données j'utilise l'enregistreur de macro mais
dans la situation présente ca ne fait pas l'affaire.

La macro de tri se trouve dans un module et je souhaiterai pouvoir l'executer
de n'importe quelle feuille. Le tri se fait sur 3 niveaux. Les feuilles se
nomment POULE A, POULE B,..., POULE H. La macro actuelle est:

' Copie des plages de résultats points/sets et matches
Union(Range("BW35:BW42"), Range("AX35:AX42"), Range("V35:V42")).Copy
Range("Q28").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _ :úlse, Transpose:úlse

'------------------------------------------------------------------------------
' Tri des données pour la recherche du rang Range("P28:S35").Select
ActiveWorkbook.Worksheets("POULE A").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("POULE A").Sort.SortFields.Add
Key:=Range("Q28:Q35" _ ), SortOn:=xlSortOnValues,
Order:=xlDescending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("POULE A").Sort.SortFields.Add Key:=Range("R28:R35"
_ ), SortOn:=xlSortOnValues, Order:=xlDescending,
DataOption:=xlSortNormal ActiveWorkbook.Worksheets("POULE
A").Sort.SortFields.Add Key:=Range("S28:S35" _ ),
SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("POULE A").Sort .SetRange
Range("P28:S35") .Header = xlGuess .MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With


Comment puis-je simplifier cela?

Merci pour votre aide

JP
JP
Le #25449052
Bonjour,

Propre, net, merci à vous deux.
La solution de DanielCo va très bien.

JP
Publicité
Poster une réponse
Anonyme