Tri d'une feuille excel de longueur variable en visual basic
RésoluBonjour,
J'utilise une procédure pour trier une feuille Excel dont j'ai mis la longueur "en dur" dans une RANGE(). En l'occurence 1500 lignes.
Sub Trier_sur_Serial()
‘ Dim derLig As Integer
‘Sheets("Transactions").Select
‘Sheets("Transactions").Activate
‘derLig = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1
Columns("A:A").Select
Range("A2").Activate
ActiveWorkbook.Worksheets("Transactions").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Transactions").Sort.SortFields.Add2 Key:=Range( _
"A3:A1500"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("Transactions").Sort
.SetRange Range("A2:H1500")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Je souhaite maintenant passer la valeur de l'entier derLig obtenu en début de routine (4 premières lignes en commentaires) à ma Range à la place de A1500 et H1500.
Pouvez vous m'aider car je ne trouve pas la syntaxe?
Merci par avance.
Claude
Macintosh / Safari 16.5.2
3 réponses
-
Contributeur
bonjour,
à la place de
"A3:A1500"tu peux écrire
"A3:A"+cstr(derLig) -
Merci yg_be.
-
Contributeur
plus propre:
derLig = Sheets("Transactions").Cells(Sheets("Transactions").Rows.Count, 1).End(xlUp).Row + 1sinon:
derLig = ActiveSheet.Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row + 1
Il est important de préciser la feuille aussi devant "Rows".