Moi aussi j'ai un problème de tri en VBA
Bonjour
Voici le contexte de mon problème.
1 - Présentation du tableau
Mon tableau comprend entre autres les colonnes Date (C), Tiers (D), Notes (E) et Montant (F).
J'ai créé deux macros pour trier mon tableau soit par Date (plus exactement Date, Tiers & Notes) soit par Tiers (Tiers, Date, Notes)
L'encolonnage est en ligne 2. La première ligne Détail est en 3 et la dernière en 90 (pour l'instant, mais il est possible que j'ajoute d'autres lignes plus tard). Il y a ensuite une ligne de totalisation des montants.
Lorsque j'ai créé mes macros, la dernière ligne renseignée était la 31.
Jusque là, quand j'utilise mes macros, les tris se font correctement.
2 - Problème rencontré
Si j'ajoute des lignes Détail (32 à 50 par exemple), elles ne sont pas prises en compte par les macros. Le tri continue de s'effectuer sur les 31 premières lignes.
3 - Macro utilisé
N'étant pas un expert en VBA, j'ai créé mes macros en utilisant l'enregistreur de macros Excel.
Voici ce qui a été généré :
Sub Tri_Tiers()
'
' Tri_Tiers Macro
' Tri par Tiers, Date & Notes
'
Range("A2").Select
ActiveWorkbook.Worksheets("Journal").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Journal").Sort.SortFields.Add2 Key:=Range("D3:D31" _
), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("Journal").Sort.SortFields.Add2 Key:=Range("C3:C31" _
), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("Journal").Sort.SortFields.Add2 Key:=Range("E3:E31" _
), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Journal").Sort
.SetRange Range("A2:I31")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A3").Select
End Sub
4 - Ma demande
Comment modifier ma macro pour qu'elle fonctionne quelque soit le nombre de lignes ?
Merci pour votre assistance.