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

Trier les lignes

2 réponses
Avatar
PST
Bonjour

Bonjour

La macro ci-dessous me permet de trier les lignes.

Je voudrais pouvoir trier les lignes par exemple :

- ligne 3 a 10 de la colonne b a la colonne g
- ligne 5 a 20 de la colonne a a la colonne f



merci


Sub Tri_lignes()

For i = 2 To 52
Rows(i).Select
Selection.Sort Key1:=Rows(i), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
Next i

End Sub

2 réponses

Avatar
Corona
Bonjour PST
Ceci te convient-il ?
Boucle de 3 à 52 qui trie de 3 à 10 les colonnes b à g et ensuite
après (de 11 à 52) les colonnes a à f
Parce-que tu parles de 3 à 10 et de 5 à 20 ?
Il me semble qu'il y a un problème pour trier entre 5 et 10 et que ce
passe t'il après 20 ?
Philippe Tulliez

Sub Tri_lignes()
Dim I
'- ligne 3 a 10 de la colonne b a la colonne g
'- ligne 5 a 20 de la colonne a a la colonne f
Dim cellSort As Range
Dim limit%: limit% = 11

For I = 3 To 52
Set cellSort = Range(Cells(I, 2 + (I >= limit%)), Cells(I, 7 + (I >=
limit%)))
cellSort.Sort key1:=Rows(I), OrderCustom:=1, Orientation:=xlLeftToRight
Next I
End Sub

PST a écrit :
Bonjour

Bonjour

La macro ci-dessous me permet de trier les lignes.

Je voudrais pouvoir trier les lignes par exemple :

- ligne 3 a 10 de la colonne b a la colonne g
- ligne 5 a 20 de la colonne a a la colonne f



merci


Sub Tri_lignes()

For i = 2 To 52
Rows(i).Select
Selection.Sort Key1:=Rows(i), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
Next i

End Sub


Avatar
PST
Merci


Dans ma demande les deux lignes étaient deux exemples différents


une autre approche de ROGER2327

Sub Tri_lignes()
toto 3, 10, "B", "G"
'toto 5, 20, "A", "F"
End Sub

Private Sub toto(lig1 As Long, lign As Long, col1 As String, coln As Stri ng)
Dim i As Long
For i = lig1 To lign
Range(col1 & i, coln & i).Sort Key1:=Range(col1 & i),
Order1:=xlAscending, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight , _
DataOption1:=xlSortNormal
Next i
End Sub


Le 23/12/2009 12:36, Corona a écrit :
Bonjour PST
Ceci te convient-il ?
Boucle de 3 à 52 qui trie de 3 à 10 les colonnes b à g et ensuite après
(de 11 à 52) les colonnes a à f
Parce-que tu parles de 3 à 10 et de 5 à 20 ?
Il me semble qu'il y a un problème pour trier entre 5 et 10 et que ce
passe t'il après 20 ?
Philippe Tulliez

Sub Tri_lignes()
Dim I
'- ligne 3 a 10 de la colonne b a la colonne g
'- ligne 5 a 20 de la colonne a a la colonne f
Dim cellSort As Range
Dim limit%: limit% = 11

For I = 3 To 52
Set cellSort = Range(Cells(I, 2 + (I >= limit%)), Cells(I, 7 + (I > =
limit%)))
cellSort.Sort key1:=Rows(I), OrderCustom:=1, Orientation:=xlLeftT oRight
Next I
End Sub

PST a écrit :
Bonjour

Bonjour

La macro ci-dessous me permet de trier les lignes.

Je voudrais pouvoir trier les lignes par exemple :

- ligne 3 a 10 de la colonne b a la colonne g
- ligne 5 a 20 de la colonne a a la colonne f



merci


Sub Tri_lignes()

For i = 2 To 52
Rows(i).Select
Selection.Sort Key1:=Rows(i), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftTo Right, _
DataOption1:=xlSortNormal
Next i

End Sub