Tri vba sur une sélection pouvant varier

lolo62000

XLDnaute Junior
Bonjour,
j'ai tout tenté, mais je n'arrive pas à mes fins.
Voilà le problème. Je voudrais effectuer un tri en vba sur une sélection de lignes. Seulement mon problème, c'est que je peux à l'occasion ajouter des lignes, et je veux que le tri démarre en cellule D7 jusque la colonne R, mais je veux aussi exempter la dernière ligne du tri.
Voici le début, le code qui me permet de faire ma sélection, jusqu'à la dernière ligne, -1.
Dim maPlage As Range
Dim DernLigne As Long

DernLigne = Range("D" & Rows.Count).End(xlUp).Row - 1
Set maPlage = Range("D7:R" & DernLigne)
maPlage.Select

Ensuite, selon l'assistant pour enregistrer une macro, j'ai ceci:

ActiveWorkbook.Worksheets("Template").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Template").Sort.SortFields.Add Key:=Range("D7:D64" _
)
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Template").Sort
.SetRange Range("C7:R69")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With

J'ai essayé de modifier Le texte en rouge, par "Selection" dans le code, mais la macro bugue en arrivant à .Apply. Tout en ayant cependant réalisé les modifications de tri attendues...
Une idée de ce qui ne vas pas?
Merci pour votre aide.
Laurent.

PS:Le bonhomme sourire n'est pas voulu, c'est juste que la partie de code : D a été remplacée par monsieur sourire!
 

jpb388

XLDnaute Accro
Re : Tri vba sur une sélection pouvant varier

bonjour à tous,lolo62000 ,Pierrot93

tu peux aussi essayer
Code:
With ActiveWorkbook.Worksheets("Template").Sort
.SortFields.Clear
.SortFields.Add Key:=Range("D7:R" & DernLigne), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.SetRange Range("C7:R" & DernLigne)
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
non testé
 
Dernière édition:

lolo62000

XLDnaute Junior
Re : Tri vba sur une sélection pouvant varier

Salut,
merci pour votre aide.
Malheureusement toujours ce problème de macro non terminée, qui bugue à .Apply.
Je joins mon fichier en mode simplifié pour vous montrer le problème de ma macro "Trier".
Amic'
Laurent.
 

Pièces jointes

  • Test - Cumulatifs Equipe Année 2015.zip
    21.9 KB · Affichages: 24

Staple1600

XLDnaute Barbatruc
Re : Tri vba sur une sélection pouvant varier

Bonsoir à tous


Personnellement pour trier, j'emploie la syntaxe des versions précédentes d'Excel
(test OK sur Excel 2013)
VB:
Sub TRI_A_L_ANCIENNE()
Dim dl&, plg As Range
'adapter le nom de la feuille
With Sheets(1)
    dl = .Cells(Rows.Count, "A").End(xlUp).Row
'adapter la plage de cellules
    Set plg = .Range(.Cells(1, "A"), .Cells(dl, "G"))
    plg.Sort key1:=.Cells(2, 1), order1:=xlAscending, Header:=xlGuess
'adapter la cellule en key1
End With
End Sub
 

Membres actuellement en ligne

Statistiques des forums

Discussions
312 453
Messages
2 088 551
Membres
103 881
dernier inscrit
malbousquet