Tri vba sur une sélection pouvant varier

  • Initiateur de la discussion Initiateur de la discussion lolo62000
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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😀64" _
)
, 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!
 
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:
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
29
Affichages
3 K
Réponses
1
Affichages
1 K
Réponses
8
Affichages
894
Réponses
5
Affichages
1 K
Retour