Tri d'une feuille excel de longueur variable en visual basic

Résolu

Bonjour,

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

  1. Contributeur

    bonjour,

    à la place de

    "A3:A1500"

    tu peux écrire

    "A3:A"+cstr(derLig)
    1. Contributeur

      plus propre:

      derLig = Sheets("Transactions").Cells(Sheets("Transactions").Rows.Count, 1).End(xlUp).Row + 1

      sinon:

      derLig = ActiveSheet.Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row + 1

      Il est important de préciser la feuille aussi devant "Rows".