Tri d'une feuille excel de longueur variable en visual basic
Résolu
cvan85
Messages postés
59
Statut
Membre
-
yg_be Messages postés 24281 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 24281 Date d'inscription Statut Contributeur Dernière intervention -
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
A voir également:
- Tri d'une feuille excel de longueur variable en visual basic
- Comment faire un tri personnalisé sur excel - Guide
- Visual basic - Télécharger - Langages
- Feuille de pointage excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Déplacer une colonne excel - Guide
3 réponses
yg_be
Messages postés
24281
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 585
bonjour,
à la place de
"A3:A1500"
tu peux écrire
"A3:A"+cstr(derLig)
yg_be
Messages postés
24281
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 585
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".