Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

5 réponses
Avatar
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:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("F14:G20").Select
Selection.Sort Key1:=Range("G14"), Order1:=xlDescending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("H14:I20").Select
Selection.Sort Key1:=Range("I14"), Order1:=xlDescending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("J14:K20").Select
Selection.Sort Key1:=Range("K14"), Order1:=xlDescending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("L14:M20").Select
Selection.Sort Key1:=Range("M14"), Order1:=xlDescending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("N14:O20").Select
Selection.Sort Key1:=Range("O14"), Order1:=xlDescending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("S14:T20").Select
Selection.Sort Key1:=Range("T14"), Order1:=xlDescending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("U14:V20").Select
Selection.Sort Key1:=Range("V14"), Order1:=xlDescending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("W14:X20").Select
Selection.Sort Key1:=Range("X14"), Order1:=xlDescending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("Y14:Z20").Select
Selection.Sort Key1:=Range("Z14"), Order1:=xlDescending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("AA14:AB20").Select
Selection.Sort Key1:=Range("AB14"), Order1:=xlDescending, Header:=xlNo,
_
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End Sub

Cordialement
Guy

5 réponses

Avatar
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" a écrit dans le message de 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



Avatar
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" a écrit dans le message de news:

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" a écrit dans le message de 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







Avatar
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" a écrit dans le message de
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



Avatar
Ellimac
Bonjour,

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

Camille

"Guy85" a écrit dans le message de news:

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" a écrit dans le message de news:

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" a écrit dans le message de 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











Avatar
Guy85
Bonjour Hervé,
Impec ça fonctionne.
Merci
Cordialement
Guy

"Hervé" a écrit dans le message de news:

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" a écrit dans le message de
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