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

Tri d'une zone avec macro

drop91

XLDnaute Junior
Bonjour,
je suis confronter à un problème, je souhaite trier une zone de cellules, grâce à un bouton de contrôle lorsque je le sélectionne, je trie la colonne en ordre croissant. Pour cela j'utilise la macro suivante :

Sub Try(cellule As String)
Application.ScreenUpdating = False
Range("lazone").Select ' avec lazone=L4C1:L69C3
Selection.Sort Key1:=Range(cellule), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Application.ScreenUpdating = True
Range("A1").Select
End Sub

Problème tout fonctionne bien sur la 2éme et 3éme colonne mais pas sur la première qui trie que les 60 premières valeurs, y a t'il une fonction qui manque ?, bref je bloque et je ne sais pas quoi faire.
Si vous avez une solution, je suis preneur.
En vous remerciant par avance.
 

Pièces jointes

  • Fichier essai tri.xlsm
    35.1 KB · Affichages: 12
Dernière édition:

Lone-wolf

XLDnaute Barbatruc
Bonjour drop

Il faut corriger la colonne A, il y a des 2 - 5 et 6 écrit en texte et non en nombre; c'est pour ça que la colonne n'est pas triée correctement. Ensuite tu peux modifier la macro comme ceci

VB:
Option Explicit

Sub Try(cellule As String)
Dim derlig As Long, plage As Range

    Application.ScreenUpdating = False
    derlig = Range("a" & Rows.Count).End(xlUp).Row

    Set plage = Range("a4:c" & derlig)
    plage.Sort Range(cellule), xlAscending
End Sub
 
Dernière édition:

drop91

XLDnaute Junior
Un grand Merci Lone-Wolf,
le problème c'est que j'ai du faire des copier coller de cellule ce qui m'a mis la/les cellule(s) en texte.

En plus la nouvelle macro ne fait plus appel à un nom (définissant le champ de tri) , maintenant je peux rajouter des colonnes et ne plus me soucier de modifier le nom de zone.

Merci encore.
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…