Tri d'une taille variable tableau dans excel
Ce que je suis en train de faire est de sélectionner un tableau dans une feuille de calcul, puis les trier en fonction de 2 colonnes différentes
J'ai généré ce code avec l'enregistrement de la macro option. Les changements de table en taille, ce qui est pourquoi j'ai utilisé le xlDown, malheureusement le code par la suite les références exactes des cellules B4:B52". Une idée de comment je pourrais résoudre ce problème?
Range("B4:J4").Select
Range(Selection, Selection.End(xlDown)).Select
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range( _
"B4:B52"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range( _
"G4:G52"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Sheet1").Sort
.SetRange Range("B4:J52")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Vous devez vous connecter pour publier un commentaire.
Puisque vous êtes le tri des
Table
(ListObject
en VBA), vous aurez envie de vous y référer. Cela permettra d'ajuster de façon dynamique pour englober l'ensemble des colonnes de la table. Dans cet exemple, les en-têtes de colonne/noms triés sont "Data1" et "Data3":Je voudrais trier les colonnes dans le tableau de la façon suivante:
En fait, la seule différence est que vous déclarez une Gamme et d'attribuer celui-ci à la colonne de la table qui doit être triée. Faisant de cette façon, vous êtes en mesure d'appliquer la macro de tableaux sur différentes feuilles en supposant que les tables contiennent la colonne avec le nom "ColumnToBeSortedName".