Tri d'une feuille excel de longueur variable en visual basic
Résolu
cvan85
Messages postés
58
Date d'inscription
Statut
Membre
Dernière intervention
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 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
- Visual basic - Télécharger - Langages
- Comment faire un tri personnalisé sur excel - Guide
- 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
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour,
à la place de
"A3:A1500"
tu peux écrire
"A3:A"+cstr(derLig)
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
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".