Merlinn
-
20 mai 2014 à 15:04
jordane45
Messages postés37718Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention22 septembre 2023
-
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
jordane45
Messages postés37718Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention22 septembre 2023342 20 mai 2014 à 15:47
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
Merlinn
Messages postés64Date d'inscriptiondimanche 20 avril 2008StatutMembreDernière intervention 3 juin 2014 20 mai 2014 à 16:08
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és37718Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention22 septembre 2023342 20 mai 2014 à 16:14
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és37718Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention22 septembre 2023342 20 mai 2014 à 16:19
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.