Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 Boucle trie sur colonne sans entete

  • Initiateur de la discussion Initiateur de la discussion GHISLAIN
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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.
 
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
 
Re,

Bah dans la dernière macro il suffit de remplacer .Rows("18:" & .Rows.Count) par .Rows("18:40")

Et dans les autres (sans le point) Rows("18:" & Rows.Count) par Rows("18:40")


A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
12
Affichages
591
Réponses
15
Affichages
683
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…