Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Problème de tri en VBA

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 !

gillmo

XLDnaute Occasionnel
Bonsoir à tous,

J'ai un petit soucis sur un code de TRI en VBA. Je souhaite faire un tri à partir de la ligne 5 car en ligne 4 j'ai les titres de mes colonnes. Avec le code ci dessous, le tri s'effectue, mais il écrase les données de la ligne 1 à la ligne 4 et remonte toutes les données qui sont dessous

Code:
Sub Tricompte()
Range("A5").Select
Selection.Sort Key1:=Range("F5"), Order1:=xlAscending, _
Header:=xlGuess, OrderCustom:=1, MatchCase _
:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, _
DataOption2:=xlSortNormal
End Sub

Je ne vois pas ou se trouve l'erreur. Si vous pouviez m'aider ce serait sympa.

Cordialement.
 
Re : Problème de tri en VBA

Bonsoir gillmo,

Il faut que tu indiques clairement à Excel quelle plage il doit trier.

Dans l'exemple ci-dessous, qui reprend ton code, le tri s'effectue dans la plage A4:K20 et la ligne d'en-tête n'est pas incluse:

Code:
Sub Tricompte()
Range("A4:K20").Sort Key1:=Range("F5"), Order1:=xlAscending, _
Header:=xlYes, OrderCustom:=1, MatchCase _
:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, _
DataOption2:=xlSortNormal
End Sub
Par ailleurs, tu n'as pas besoin de sélectionner la plage pour la trier. Cette remarque est globalement vraie pour l'ensemble des opérations effectuées sur des objets, il suffit de les citer nommément.

Cordialement.
 
Re : Problème de tri en VBA

merci papou-net

Le problème c'est que ma plage est fluctuante en nombre de ligne et en nombre de colonne

La seule chose qui est fixe c'est qu'elle commence à la ligne 5.

cdlt.
 
Re : Problème de tri en VBA

RE:

Ah ben si tu dis pas tout!

Dans ce cas, il faut rechercher quelle est la colonne de la dernière cellule dans la ligne 4 et définir la plage à trier d'après celle-ci:

Code:
Sub Tricompte()
Dim Col As Integer, Plage As Range

Col = Range("IV4").End(xlToLeft).Column
Set Plage = Cells(4, Col).CurrentRegion
Plage.Sort Key1:=Range("F5"), Order1:=xlAscending, _
Header:=xlYes, OrderCustom:=1, MatchCase _
:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, _
DataOption2:=xlSortNormal
End Sub
Mais il reste une question à résoudre: quelle est la colonne pour le tri? Est-ce que c'est toujours F5 ou, sinon, comment la définir?

A +

Cordialement.
 
- 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

  • Question Question
XL 2021 listbox
Réponses
18
Affichages
709
Réponses
17
Affichages
1 K
Réponses
6
Affichages
1 K
B
  • Question Question
Réponses
2
Affichages
775
Benjy51190
B
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…