Trie d’une liste évolutive commandée par un bouton

  • Initiateur de la discussion Initiateur de la discussion dbonneaud
  • 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 !

D

dbonneaud

Guest
Bonjour à tous,
J'ai créé une macro pour trier une liste commandé par un bouton, mais cette liste est évolutive.
Comment faire évoluer le trie en fonction de la nouvelle longueur de liste, en modifiant "C35" et "K35" en fonction de la dernière ligne utilisée.


Sub Classementlisteclients()
' Classementlisteclients Macro
ActiveWorkbook.Worksheets("Données clients").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Données clients").Sort.SortFields.Add Key:=Range( _
"C2:C35"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("Données clients").Sort
.SetRange Range("C1:K35")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub

Merci
 
Re : Trie d’une liste évolutive commandée par un bouton

Bonsoir,

On peut peut-être faire mieux, mais essaie en ajoutant juste ceci:

Code:
Sub Classementlisteclients()
' Classementlisteclients Macro
[COLOR=darkred]Dim Derlig As Long
Derlig = Sheets("Données Clients").Range("C65530").End(xlUp).Row[/COLOR]
ActiveWorkbook.Worksheets("Données clients").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Données clients").Sort.SortFields.Add Key:=Range( _
"C2:C[COLOR=darkred]" & Derlig[/COLOR]), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("Données clients").Sort
.SetRange Range("C1:K[COLOR=darkred]" & Derlig[/COLOR])
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub

Bien à toi,

mth
 
Re : Trie d’une liste évolutive commandée par un bouton

Bonjour Mth,
Lors du tri toutes les lignes vides s'affichent au dessus.
J'ai pensé repérer sur le fichier le dernier N° de ligne comprenant du texte, mais je n'arrive pas à l'intégrer dans le code.
Merci
@+
 
Re : Trie d’une liste évolutive commandée par un bouton

Bonjour Mth,
J'ai trouvé une formule qui fonctionne !
Feuil6.Cells(1, 1)) étant le dernier N° de ligne utilisé.

Code:
Sub Classementlisteclients()
' Classementlisteclients Macro
    ActiveWorkbook.Worksheets("Données clients").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Données clients").Sort.SortFields.Add Key:=Range( _
        "C2:C" & Feuil6.Cells(1, 1)), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
    With ActiveWorkbook.Worksheets("Données clients").Sort
        .SetRange Range("C1:L" & Feuil6.Cells(1, 1))
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub

Merci pour ton aide
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
XL 2021 listbox
Réponses
18
Affichages
736
Réponses
17
Affichages
1 K
B
  • Question Question
Réponses
2
Affichages
776
Benjy51190
B
Réponses
11
Affichages
968
Réponses
6
Affichages
1 K
T
  • Question Question
Réponses
1
Affichages
2 K
Réponses
1
Affichages
932
C
Réponses
4
Affichages
1 K
cecenico
C
Retour