Simplifier ce code simple, mais répétitif ?

Le
Guy85
Bonjour,
Dans ce code qui permet de trier 11 plages en ordre croissant.
Je souhaiterais savoir, si il y la possibilité de simplifier ce code, car il
faut encore que je le multiplie par 12 ?
Merci de votre aide

Sub Macro1()
' Macro enregistrée le 17/02/2010 par Guy

Range("D14:E20").Select
Selection.Sort Key1:=Range("E14"), Order1:=xlDescending, Header:=xlNo, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("F14:G20").Select
Selection.Sort Key1:=Range("G14"), Order1:=xlDescending, Header:=xlNo, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("H14:I20").Select
Selection.Sort Key1:=Range("I14"), Order1:=xlDescending, Header:=xlNo, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("J14:K20").Select
Selection.Sort Key1:=Range("K14"), Order1:=xlDescending, Header:=xlNo, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("L14:M20").Select
Selection.Sort Key1:=Range("M14"), Order1:=xlDescending, Header:=xlNo, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("N14:O20").Select
Selection.Sort Key1:=Range("O14"), Order1:=xlDescending, Header:=xlNo, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("S14:T20").Select
Selection.Sort Key1:=Range("T14"), Order1:=xlDescending, Header:=xlNo, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("U14:V20").Select
Selection.Sort Key1:=Range("V14"), Order1:=xlDescending, Header:=xlNo, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("W14:X20").Select
Selection.Sort Key1:=Range("X14"), Order1:=xlDescending, Header:=xlNo, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("Y14:Z20").Select
Selection.Sort Key1:=Range("Z14"), Order1:=xlDescending, Header:=xlNo, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("AA14:AB20").Select
Selection.Sort Key1:=Range("AB14"), Order1:=xlDescending, Header:=xlNo,
_
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End Sub

Cordialement
Guy
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
Ellimac
Le #21215141
Bonjour,

Sub Tri()
Range("d14").Select
For cpt = 1 To 11
ActiveCell.Range("a1:b7").Sort Key1:¬tiveCell.Offset(,1),
Order1:=xlDescending, Header:=xlNo, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
ActiveCell.Offset(, 2).Select
Next
End Sub

Camille

"Guy85" %23kkg6$
Bonjour,
Dans ce code qui permet de trier 11 plages en ordre croissant.
Je souhaiterais savoir, si il y la possibilité de simplifier ce code, car
il faut encore que je le multiplie par 12 ?
Merci de votre aide

Sub Macro1()
' Macro enregistrée le 17/02/2010 par Guy

Range("D14:E20").Select
Selection.Sort Key1:=Range("E14"), Order1:=xlDescending, Header:=xlNo,
_
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("F14:G20").Select
Selection.Sort Key1:=Range("G14"), Order1:=xlDescending, Header:=xlNo,
_
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("H14:I20").Select
Selection.Sort Key1:=Range("I14"), Order1:=xlDescending, Header:=xlNo,
_
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("J14:K20").Select
Selection.Sort Key1:=Range("K14"), Order1:=xlDescending, Header:=xlNo,
_
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("L14:M20").Select
Selection.Sort Key1:=Range("M14"), Order1:=xlDescending, Header:=xlNo,
_
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("N14:O20").Select
Selection.Sort Key1:=Range("O14"), Order1:=xlDescending, Header:=xlNo,
_
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("S14:T20").Select
Selection.Sort Key1:=Range("T14"), Order1:=xlDescending, Header:=xlNo,
_
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("U14:V20").Select
Selection.Sort Key1:=Range("V14"), Order1:=xlDescending, Header:=xlNo,
_
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("W14:X20").Select
Selection.Sort Key1:=Range("X14"), Order1:=xlDescending, Header:=xlNo,
_
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("Y14:Z20").Select
Selection.Sort Key1:=Range("Z14"), Order1:=xlDescending, Header:=xlNo,
_
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("AA14:AB20").Select
Selection.Sort Key1:=Range("AB14"), Order1:=xlDescending, Header:=xlNo,
_
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End Sub

Cordialement
Guy



Guy85
Le #21215551
Bonjour Camille,
ça fonctionne bien jusqu'à la colonne "O".
Mais après non (je suppose parce qu'il y a 3 colonnes entre "O" et "S"
Par contre pourquoi "ActiveCell.Range("a1:b7")".
Guy

"Ellimac"
Bonjour,

Sub Tri()
Range("d14").Select
For cpt = 1 To 11
ActiveCell.Range("a1:b7").Sort Key1:¬tiveCell.Offset(,1),
Order1:=xlDescending, Header:=xlNo, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
ActiveCell.Offset(, 2).Select
Next
End Sub

Camille

"Guy85" %23kkg6$
Bonjour,
Dans ce code qui permet de trier 11 plages en ordre croissant.
Je souhaiterais savoir, si il y la possibilité de simplifier ce code, car
il faut encore que je le multiplie par 12 ?
Merci de votre aide

Sub Macro1()
' Macro enregistrée le 17/02/2010 par Guy

Range("D14:E20").Select
Selection.Sort Key1:=Range("E14"), Order1:=xlDescending, Header:=xlNo,
_
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("F14:G20").Select
Selection.Sort Key1:=Range("G14"), Order1:=xlDescending, Header:=xlNo,
_
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("H14:I20").Select
Selection.Sort Key1:=Range("I14"), Order1:=xlDescending, Header:=xlNo,
_
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("J14:K20").Select
Selection.Sort Key1:=Range("K14"), Order1:=xlDescending, Header:=xlNo,
_
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("L14:M20").Select
Selection.Sort Key1:=Range("M14"), Order1:=xlDescending, Header:=xlNo,
_
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("N14:O20").Select
Selection.Sort Key1:=Range("O14"), Order1:=xlDescending, Header:=xlNo,
_
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("S14:T20").Select
Selection.Sort Key1:=Range("T14"), Order1:=xlDescending, Header:=xlNo,
_
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("U14:V20").Select
Selection.Sort Key1:=Range("V14"), Order1:=xlDescending, Header:=xlNo,
_
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("W14:X20").Select
Selection.Sort Key1:=Range("X14"), Order1:=xlDescending, Header:=xlNo,
_
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("Y14:Z20").Select
Selection.Sort Key1:=Range("Z14"), Order1:=xlDescending, Header:=xlNo,
_
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("AA14:AB20").Select
Selection.Sort Key1:=Range("AB14"), Order1:=xlDescending,
Header:=xlNo, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End Sub

Cordialement
Guy







Hervé
Le #21216871
Bonjour,

Teste ceci :

Sub Macro1()

Dim Plage As Range
Dim I As Integer

Set Plage = Range("D14:AB14")

For I = 1 To 12 Step 2
Plage(I).Resize(7, 2).Sort Plage(I).Offset(0, 1), 2
Next I
'saute les colonnes P, Q et R
For I = 16 To Plage.Count Step 2
Plage(I).Resize(7, 2).Sort Plage(I).Offset(0, 1), 2
Next I

End Sub


Hervé.


"Guy85" news:%23kkg6$
Bonjour,
Dans ce code qui permet de trier 11 plages en ordre croissant.
Je souhaiterais savoir, si il y la possibilité de simplifier ce code, car
il faut encore que je le multiplie par 12 ?
Merci de votre aide

Sub Macro1()
' Macro enregistrée le 17/02/2010 par Guy

Range("D14:E20").Select
Selection.Sort Key1:=Range("E14"), Order1:=xlDescending, Header:=xlNo,
_
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("F14:G20").Select
Selection.Sort Key1:=Range("G14"), Order1:=xlDescending, Header:=xlNo,
_
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("H14:I20").Select
Selection.Sort Key1:=Range("I14"), Order1:=xlDescending, Header:=xlNo,
_
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("J14:K20").Select
Selection.Sort Key1:=Range("K14"), Order1:=xlDescending, Header:=xlNo,
_
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("L14:M20").Select
Selection.Sort Key1:=Range("M14"), Order1:=xlDescending, Header:=xlNo,
_
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("N14:O20").Select
Selection.Sort Key1:=Range("O14"), Order1:=xlDescending, Header:=xlNo,
_
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("S14:T20").Select
Selection.Sort Key1:=Range("T14"), Order1:=xlDescending, Header:=xlNo,
_
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("U14:V20").Select
Selection.Sort Key1:=Range("V14"), Order1:=xlDescending, Header:=xlNo,
_
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("W14:X20").Select
Selection.Sort Key1:=Range("X14"), Order1:=xlDescending, Header:=xlNo,
_
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("Y14:Z20").Select
Selection.Sort Key1:=Range("Z14"), Order1:=xlDescending, Header:=xlNo,
_
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("AA14:AB20").Select
Selection.Sort Key1:=Range("AB14"), Order1:=xlDescending, Header:=xlNo,
_
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End Sub

Cordialement
Guy



Ellimac
Le #21217061
Bonjour,

Le range("A1:B7") remplace ta sélection qui fait toujours 2 colonnes et 7
lignes.

Camille

"Guy85"
Bonjour Camille,
ça fonctionne bien jusqu'à la colonne "O".
Mais après non (je suppose parce qu'il y a 3 colonnes entre "O" et "S"
Par contre pourquoi "ActiveCell.Range("a1:b7")".
Guy

"Ellimac"
Bonjour,

Sub Tri()
Range("d14").Select
For cpt = 1 To 11
ActiveCell.Range("a1:b7").Sort Key1:¬tiveCell.Offset(,1),
Order1:=xlDescending, Header:=xlNo, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
ActiveCell.Offset(, 2).Select
Next
End Sub

Camille

"Guy85" %23kkg6$
Bonjour,
Dans ce code qui permet de trier 11 plages en ordre croissant.
Je souhaiterais savoir, si il y la possibilité de simplifier ce code,
car il faut encore que je le multiplie par 12 ?
Merci de votre aide

Sub Macro1()
' Macro enregistrée le 17/02/2010 par Guy

Range("D14:E20").Select
Selection.Sort Key1:=Range("E14"), Order1:=xlDescending,
Header:=xlNo, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("F14:G20").Select
Selection.Sort Key1:=Range("G14"), Order1:=xlDescending,
Header:=xlNo, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("H14:I20").Select
Selection.Sort Key1:=Range("I14"), Order1:=xlDescending,
Header:=xlNo, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("J14:K20").Select
Selection.Sort Key1:=Range("K14"), Order1:=xlDescending,
Header:=xlNo, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("L14:M20").Select
Selection.Sort Key1:=Range("M14"), Order1:=xlDescending,
Header:=xlNo, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("N14:O20").Select
Selection.Sort Key1:=Range("O14"), Order1:=xlDescending,
Header:=xlNo, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("S14:T20").Select
Selection.Sort Key1:=Range("T14"), Order1:=xlDescending,
Header:=xlNo, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("U14:V20").Select
Selection.Sort Key1:=Range("V14"), Order1:=xlDescending,
Header:=xlNo, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("W14:X20").Select
Selection.Sort Key1:=Range("X14"), Order1:=xlDescending,
Header:=xlNo, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("Y14:Z20").Select
Selection.Sort Key1:=Range("Z14"), Order1:=xlDescending,
Header:=xlNo, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("AA14:AB20").Select
Selection.Sort Key1:=Range("AB14"), Order1:=xlDescending,
Header:=xlNo, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End Sub

Cordialement
Guy











Guy85
Le #21217981
Bonjour Hervé,
Impec ça fonctionne.
Merci
Cordialement
Guy

"Hervé"
Bonjour,

Teste ceci :

Sub Macro1()

Dim Plage As Range
Dim I As Integer

Set Plage = Range("D14:AB14")

For I = 1 To 12 Step 2
Plage(I).Resize(7, 2).Sort Plage(I).Offset(0, 1), 2
Next I
'saute les colonnes P, Q et R
For I = 16 To Plage.Count Step 2
Plage(I).Resize(7, 2).Sort Plage(I).Offset(0, 1), 2
Next I

End Sub


Hervé.


"Guy85" news:%23kkg6$
Bonjour,
Dans ce code qui permet de trier 11 plages en ordre croissant.
Je souhaiterais savoir, si il y la possibilité de simplifier ce code, car
il faut encore que je le multiplie par 12 ?
Merci de votre aide

Sub Macro1()
' Macro enregistrée le 17/02/2010 par Guy

Range("D14:E20").Select
Selection.Sort Key1:=Range("E14"), Order1:=xlDescending, Header:=xlNo,
_
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("F14:G20").Select
Selection.Sort Key1:=Range("G14"), Order1:=xlDescending, Header:=xlNo,
_
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("H14:I20").Select
Selection.Sort Key1:=Range("I14"), Order1:=xlDescending, Header:=xlNo,
_
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("J14:K20").Select
Selection.Sort Key1:=Range("K14"), Order1:=xlDescending, Header:=xlNo,
_
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("L14:M20").Select
Selection.Sort Key1:=Range("M14"), Order1:=xlDescending, Header:=xlNo,
_
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("N14:O20").Select
Selection.Sort Key1:=Range("O14"), Order1:=xlDescending, Header:=xlNo,
_
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("S14:T20").Select
Selection.Sort Key1:=Range("T14"), Order1:=xlDescending, Header:=xlNo,
_
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("U14:V20").Select
Selection.Sort Key1:=Range("V14"), Order1:=xlDescending, Header:=xlNo,
_
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("W14:X20").Select
Selection.Sort Key1:=Range("X14"), Order1:=xlDescending, Header:=xlNo,
_
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("Y14:Z20").Select
Selection.Sort Key1:=Range("Z14"), Order1:=xlDescending, Header:=xlNo,
_
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("AA14:AB20").Select
Selection.Sort Key1:=Range("AB14"), Order1:=xlDescending,
Header:=xlNo, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End Sub

Cordialement
Guy






Publicité
Poster une réponse
Anonyme