Tri de la dernière colonne [Résolu]

- - Dernière réponse : jordane45
Messages postés
26560
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 octobre 2019
- 20 mai 2014 à 16:19
Bonjour, je suis un grand débutant sur VBA depuis ce matin j'ai bien progressé en cherchant un peut partout mais la je bloque. Donc j'ai un tableau qui au fur et à mesure des semaines possèdera plus colonnes. J'ai réussi à écrire quelques chose pour selectionner la derniere colonne mais je ne sais pas écrire que je souhaite trier la derniere colonne par ordre décroissant. J'ai fat un petit coup d'enregistreur pour voir la forme de la formule du tri mais impossible de la remanier comme je le souhaite. Merci.

Sub Macro1()
'Tri de la dernière colonnes
Cells(1, Columns.Count).End(xlToLeft).Offset(, 0).Select
ActiveCell.EntireColumn.Select

ActiveWorkbook.Worksheets("Pareto").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Pareto").Sort.SortFields.Add Key:=Range("AG1"), _
SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Pareto").Sort
.SetRange Range("A2:AG23")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With

End Sub
Afficher la suite 

2 réponses

Meilleure réponse
Messages postés
26560
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 octobre 2019
316
1
Merci
Bonjour,

Sub Macro1()

'Tri de la dernière colonnes
Cells(1, Columns.Count).End(xlToLeft).Offset(, 0).Select
    ActiveWorkbook.Worksheets("Pareto").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Pareto").Sort.SortFields.Add Key:=ActiveCell, _
        SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Pareto").Sort
        .SetRange Selection.CurrentRegion
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    
End Sub

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 201 internautes nous ont dit merci ce mois-ci

Commenter la réponse de jordane45
Messages postés
64
Date d'inscription
dimanche 20 avril 2008
Statut
Membre
Dernière intervention
3 juin 2014
0
Merci
Merci c'est super !

".SetRange Selection.CurrentRegion" Signifie que que l'action va être mené sur la zone selectionnée ? Et quelle est la différence entre "ActiveCell" et "Selection.CurrentRegion" ?

Car le premier c'est les cellules actives et le second me semble identique en traduisant litteralement.

Désolé si je pose pas mal de question mais je galère tellement que je prend vraiement goût à en apprendre

Merci encore une fois Jordane45
jordane45
Messages postés
26560
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 octobre 2019
316 -
Bonjour,

ActiveCell : comme son nom l'indique : LA Cellule Active
CurrentRegion : Région "courante". ( zone en cours ) .. c'est à dire la plage de cellules qui correspond à votre "tableau".( ce qui revient à faire le raccourci clavier :[ CTRL ] +[ * ] sous Excel )

Si vous exécutez le code en mode pas à pas et que vous regardez au fur et à mesure ce qu'il se passe... vous devriez mieux comprendre le code.

Vous pouvez également utiliser l'aide ( F1 ) en ayant au préalable sélectionné un mot : (comme currentRegion par exemple ).
Cela vous indique :
Range.CurrentRegion, propriété :
Cette propriété renvoie un objet Range qui représente la zone en cours. Celle-ci est une plage limitée par toute combinaison de lignes et de colonnes vides. Type de données en lecture seule.

Remarques :
Cette propriété est utile pour de nombreuses opérations qui étendent automatiquement la sélection de façon à y inclure toute la zone en cours


jordane45
Messages postés
26560
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 octobre 2019
316 -
PS: n'oubliez pas de mettre votre discussion en RESOLU ( lien se trouvant sous le titre de votre question).
Si vous ne trouvez pas le lien ... dites le moi... je le passerai en résolu moi même.
Commenter la réponse de Merlinn