VBA pour trier une colonne dans Excel (4 méthodes)

  • Partage Ça
Hugh West

Pour trier dans Excel avec VBA vous devez appliquer le Range.Sort Dans cet article, nous allons vous montrer comment trier la colonne dans Excel avec l'option Range.Sort méthode de VBA .

Télécharger le cahier d'exercices

Vous pouvez télécharger le classeur Excel d'entraînement gratuit à partir d'ici.

Trier une colonne avec VBA.xlsm

Méthode Range.Sort dans Excel VBA

Range.Sort méthode dans VBA trie une plage de valeurs dans Excel. Ici Gamme est une variable objet qui spécifie la plage de cellules que nous voulons trier par ordre croissant ou décroissant.

Vous trouverez ci-dessous les paramètres que vous devez connaître lorsque vous travaillez avec cette méthode.

Paramètre Obligatoire/ Facultatif Type de données Description
Clé En option Variante Spécifie la plage ou la colonne dont les valeurs doivent être triées.
Commandez En option XlSortOrder Spécifie l'ordre dans lequel le tri sera effectué.
  • xlAscending = Pour trier dans l'ordre croissant.
  • xlDescendant = Pour trier par ordre décroissant.
En-tête En option XlYesNoGuess Spécifie si la première ligne contient des en-têtes ou non.
  • xlNo = Lorsque la colonne n'a pas d'en-tête ; Valeur par défaut.
  • xlOui = Lorsque les colonnes ont des en-têtes.
  • xlGuess = Pour laisser Excel déterminer les en-têtes.

4 méthodes de mise en œuvre de VBA pour trier une colonne dans Excel

Dans cette section, vous saurez comment trier une seule colonne avec et sans en-tête , plusieurs colonnes avec et sans en-tête et comment trier en double-cliquant simplement sur l'en-tête d'une colonne dans Excel.

1. Embed VBA pour trier une seule colonne sans en-tête dans Excel

Si vous voulez trier une seule colonne dans votre feuille de calcul Excel avec VBA puis suivez les étapes ci-dessous.

C'est notre colonne que nous allons trier avec VBA code.

Des pas :

  • Appuyez sur Alt + F11 sur votre clavier ou allez dans l'onglet Développeur -> ; Visual Basic pour ouvrir Éditeur Visual Basic .

  • Dans la fenêtre pop-up du code, dans la barre de menu, cliquez sur Insertion -> ; Module .

  • Copiez le code suivant et collez-le dans la fenêtre de code.
 Sub SortSingleColumnWithoutHeader() Range("B5:B15").Sort Key1:=Range("B5"), Order1:=xlAscending, Header:=xlNo End Sub 

Votre code est maintenant prêt à être exécuté.

Ici,

  • Clé1:=Range("B5") → Spécifié B5 pour que le code sache quelle colonne trier.
  • Ordre1:=xlAscending → Spécifier la commande comme xlAscending pour trier la colonne dans l'ordre croissant. Si vous voulez trier la colonne dans l'ordre décroissant, écrivez xlDescendant à la place.
  • En-tête:= xlNo → Comme notre colonne n'a pas d'en-tête, nous l'avons spécifiée avec la balise xlNo option.

  • Appuyez sur F5 sur votre clavier ou dans la barre de menu, sélectionnez Run -> ; Run Sub/UserForm Vous pouvez également cliquer sur le bouton petite icône Play dans la barre de sous-menu pour exécuter la macro.

Vous verrez que votre colonne est maintenant triés par ordre croissant .

Notez qu'ici, nous avons défini manuellement la plage de données en tant que Range("B5:B15") .

Si vous souhaitez modifier les données en ajoutant ou en supprimant des valeurs, vous pouvez mettre en œuvre le code suivant qui effectue une mise à jour automatique en fonction des cellules de l'ensemble de données.

 Sub SortSingleColumnWithoutHeader() Range("B5", Range("B5").End(xlDown)).Sort Key1:=Range("B5"), Order1:=xlAscending, Header:=xlNo End Sub 

Remarquez qu'au lieu de définir la plage manuellement par Range("B5:B15") nous avons écrit, Gamme( "B5", Range("B5"). End(xlDown)) .

Cela permet de trier la colonne en fonction de la dernière cellule remplie consécutivement. S'il y a des cellules vides, les données ne seront prises en compte que jusqu'à la première cellule vide.

Lire la suite : VBA pour trier un tableau dans Excel (4 méthodes)

2. insérer une macro VBA pour trier une seule colonne avec en-tête

Dans la section précédente, nous avions un ensemble de données d'une seule colonne sans en-tête, mais maintenant nous avons a colonne avec un en-tête .

Cette fois-ci, nous allons apprendre comment le trier avec Macro VBA .

Des pas :

  • De la même manière que précédemment, ouvrez Éditeur Visual Basic de la Développeur et Insérer a Module dans la fenêtre de code.
  • Dans la fenêtre de code, copiez le code suivant et collez-le.
 Sub SortSingleColumnWithHeader() Range("B5:B16").Sort Key1:=Range("B5"), Order1:=xlDescending, Header:=xlYes End Sub 

Votre code est maintenant prêt à être exécuté.

Ici,

  • Clé1:=Range("B5") → Spécifié B5 pour que le code sache quelle colonne trier.
  • Ordre1:=xlDescending → Cette fois-ci, nous allons trier la colonne par ordre décroissant, donc spécifié l'ordre comme suit . xlDescendant .
  • En-tête:= xlOui → Comme notre colonne a un en-tête cette fois-ci, nous l'avons spécifié avec la balise xlOui option.

  • Exécuter ce code et vous obtiendrez le colonne avec en-tête triée par ordre décroissant .

Lire la suite : Comment trier une ListBox avec VBA dans Excel (Guide complet)

Lectures similaires :

  • Comment trier les adresses IP dans Excel (6 méthodes)
  • [Résolu !] Le tri d'Excel ne fonctionne pas (2 solutions)
  • Comment ajouter un bouton de tri dans Excel (7 méthodes)
  • Trier une plage en utilisant VBA dans Excel (6 exemples)
  • Comment trier par nom dans Excel (3 exemples)

3. macro VBA pour trier plusieurs colonnes avec ou sans en-tête

Vous pouvez également triez plusieurs colonnes dans votre ensemble de données avec un code VBA.

Des pas :

  • Comme nous l'avons montré précédemment, l'ouverture Éditeur Visual Basic de la Développeur et Insérer a Module dans la fenêtre de code.
  • Dans la fenêtre de code, copiez le code suivant et collez-le.
 Sub SortMultipleColumnsWithHeaders() With ActiveSheet.Sort .SortFields.Add Key:=Range("B4"), Order:=xlAscending .SortFields.Add Key:=Range("C4"), Order:=xlAscending .SetRange Range("B4:D15") .Header = xlYes .Apply End With End Sub 

Votre code est maintenant prêt à être exécuté.

Ici,

.SortFields.Add Key:=Range("B4"), Order:=xlAscending

.SortFields.Add Key:=Range("C4"), Order:=xlAscending

Par ces deux lignes, nous définissons Cellule B4 et C4 pour trier les deux colonnes qui leur sont associées sur ordre ascendant .

Comme nous avons des en-têtes dans notre jeu de données, nous avons spécifié En-tête = xlYes sinon nous aurions écrit En-tête = xlNo dans le code.

  • Exécuter ce code et vous obtiendrez le colonnes avec en-tête triées par ordre croissant .

4. Macro pour trier des données en double-cliquant sur l'en-tête dans Excel

Si vous voulez trier facilement les données en utilisant simplement double-cliquer sur l'en-tête vous pouvez le faire avec VBA code.

Des pas :

  • Cliquez à droite sur sur le onglet de feuille .
  • Dans la liste d'options qui apparaît, cliquez sur Afficher le code .
  • La fenêtre de code apparaîtra, copiez le code suivant et collez-le dedans.
 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim iRange As Range Dim iCount As Integer iCount = Range("B4:D15").Columns.Count Cancel = False If Target.Row = 4 And Target.Column <= iCount Then Cancel = True Set iRange = Range(Target.Address) Range("B4:D15").Sort Key1:=iRange, Header:=xlYes End If End Sub 
  • Sauvez le code.

  • Maintenant, retournez à la feuille de travail qui vous intéresse et si vous double-cliquez sur les en-têtes vous verrez que les colonnes se réorganisent.

Lire la suite : Comment trier et filtrer des données dans Excel (un guide complet)

Les choses à retenir

  • Vous pouvez créer une plage nommée et l'utiliser à la place lorsque vous transmettez une plage de références de cellules à l'intérieur de l'instruction Trier Par exemple, si vous voulez trier la plage A1:A10 au lieu de le passer à chaque fois dans le code, vous pouvez créer une plage nommée, comme " SortRange " et l'utiliser avec le Range.Sort méthode comme Range("SortRange") .
  • Si vous n'êtes pas sûr que votre jeu de données ait des en-têtes ou non, vous pouvez laisser le système le déterminer en utilisant la fonction xlGuess paramètre.

Conclusion

Cet article vous a montré comment trier la colonne dans Excel VBA J'espère que cet article vous a été très utile. N'hésitez pas à me demander si vous avez des questions sur le sujet.

Hugh West est un formateur et analyste Excel très expérimenté avec plus de 10 ans d'expérience dans l'industrie. Il est titulaire d'un baccalauréat en comptabilité et finance et d'une maîtrise en administration des affaires. Hugh a une passion pour l'enseignement et a développé une approche pédagogique unique qui est facile à suivre et à comprendre. Sa connaissance approfondie d'Excel a aidé des milliers d'étudiants et de professionnels du monde entier à améliorer leurs compétences et à exceller dans leur carrière. Grâce à son blog, Hugh partage ses connaissances avec le monde, offrant des tutoriels Excel gratuits et une formation en ligne pour aider les particuliers et les entreprises à atteindre leur plein potentiel.