XL 2010 Boucle trie sur colonne sans entete

GHISLAIN

XLDnaute Impliqué
Bonjour le forum ,

je tente d’apter un code trouvé sur le forum qui pourrait me trier des colonnes indépendamment l'une de l autre .
Je souhaite avoir le trie de la colonne A , ensuite on passe a la B on la trie , on passe a la C on la trie etc

merci a tous de vos suggestions et aide apportée

Amicalement

ghislain
 

Pièces jointes

  • tri_variable (1).xls
    47.5 KB · Affichages: 36

job75

XLDnaute Barbatruc
Bonjour GHISLAIN, le forum,

Si le UsedRange commence en dessous de la ligne 18 on peut le remonter :
Code:
Sub Tri()
Dim r As Range
Set r = Intersect(ActiveSheet.UsedRange, Rows("18:" & Rows.Count))
If r Is Nothing Then Exit Sub
If r.Row > 18 Then Rows(18).Resize(r.Row - 18).Delete
For Each r In r.Columns
  r.Sort r, xlAscending, Header:=xlNo
Next
End Sub
J'ai oublié de préciser que la macro doit être placée dans un module standard.

Si elle est placée dans le code d'une feuille de calcul il y a 2 solutions, soit :
Code:
Sub Tri()
Dim r As Range
Set r = Intersect(Me.UsedRange, Rows("18:" & Rows.Count))
If r Is Nothing Then Exit Sub
If r.Row > 18 Then Rows(18).Resize(r.Row - 18).Delete
For Each r In r.Columns
  r.Sort r, xlAscending, Header:=xlNo
Next
End Sub
soit en précisant toujours la feuille des objets Range :
Code:
Sub Tri()
Dim r As Range
With ActiveSheet
  Set r = Intersect(.UsedRange, .Rows("18:" & .Rows.Count))
  If r Is Nothing Then Exit Sub
  If r.Row > 18 Then .Rows(18).Resize(r.Row - 18).Delete
End With
For Each r In r.Columns
  r.Sort r, xlAscending, Header:=xlNo
Next
End Sub
Bonne journée.
 

GHISLAIN

XLDnaute Impliqué
Bonjour75

Un grand merci a toi pour ces macros et ces explications , top du top .
Une petite question avant de clôturer , si je souhaite limiter ce trie sur une hauteur de ligne , par exemple de la ligne 18 a 40

Merci pour le retour
*Bien Amicalement

Ghislain
 

Discussions similaires

Statistiques des forums

Discussions
311 726
Messages
2 081 955
Membres
101 852
dernier inscrit
dthi16088