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
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
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
' 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
Propre, net, merci à vous deux.
La solution de DanielCo va très bien.
JP