web-dev-qa-db-fra.com

Plage de tri Excel VBA par colonne spécifique

J'ai une table qui peut contenir un nombre quelconque de lignes:

enter image description here

Comme je l'ai dit, il peut contenir 1 ou ∞ lignes.

Je veux trier la plage A3: D∞ par la cellule Date qui se trouve dans la colonne B. Comment puis-je le faire?

Le problème est que je ne sais pas comment choisir entre A3 et la dernière ligne.

Je pense que boucler à la dernière ligne n'est pas une méthode correcte.

Jusqu'à présent, cela semble correct, mais la plage est codée en dur. Comment puis-je me débarrasser du codage en dur de la plage?

Range("A3:D8").Sort key1:=Range("B3:B8"), _
order1:=xlAscending, Header:=xlNo
34
Cheese

Essayez ce code:

Dim lastrow As Long
lastrow = Cells(Rows.Count, 2).End(xlUp).Row
Range("A3:D" & lastrow).Sort key1:=Range("B3:B" & lastrow), _
   order1:=xlAscending, Header:=xlNo
80
Dmitry Pavliv

Ou ca:

Range("A2", Range("D" & Rows.Count).End(xlUp).Address).Sort Key1:=[b3], _
    Order1:=xlAscending, Header:=xlYes
13
L42