Note: The other languages of the website are Google-translated. Back to English
English English

Comment trier les données de colonne en cliquant sur l'en-tête dans Excel?

En supposant que j'ai une plage de données, maintenant, je voudrais trier les données par ordre croissant ou décroissant en cliquant sur n'importe quel en-tête de colonne pour obtenir la capture d'écran suivante. Comment pourriez-vous résoudre ce travail dans Excel?

doc trier par clic 1

Trier les données en cliquant sur l'en-tête de colonne avec le code VBA


flèche bleue bulle droite Trier les données en cliquant sur l'en-tête de colonne avec le code VBA

Normalement, dans Excel, vous pouvez appliquer la fonction Trier pour trier les données rapidement et facilement, mais, pour trier les données en cliquant simplement sur une cellule, le code VBA suivant peut vous rendre service.

1. Cliquez avec le bouton droit sur l'onglet de la feuille dont vous souhaitez trier les données en cliquant sur une cellule, puis choisissez Voir le code dans le menu contextuel, et dans le Microsoft Visual Basic pour les applications fenêtre, copiez et collez le code suivant dans le module vide:

Code VBA: Triez les données en cliquant sur un en-tête de cellule ou de colonne:

Public blnToggle As Boolean
Private Sub Worksheet_BeforeDoubleClick _
(ByVal Target As Range, Cancel As Boolean)
'Updateby Extendoffice
Dim LastColumn As Long, keyColumn As Long, LastRow As Long
Dim SortRange As Range
LastColumn = _
Cells.Find(What:="*", After:=Range("A1"), _
SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
keyColumn = Target.Column
If keyColumn > LastColumn Then Exit Sub
Application.ScreenUpdating = False
Cancel = True
LastRow = Cells(Rows.Count, keyColumn).End(xlUp).Row
Set SortRange = Target.CurrentRegion
blnToggle = Not blnToggle
If blnToggle = True Then
SortRange.Sort _
Key1:=Cells(2, keyColumn), Order1:=xlAscending, Header:=xlYes
Else
SortRange.Sort _
Key1:=Cells(2, keyColumn), Order1:=xlDescending, Header:=xlYes
End If
Set SortRange = Nothing
Application.ScreenUpdating = True
End Sub

doc trier par clic 2

2. Et puis enregistrez et fermez la fenêtre de code, maintenant, lorsque vous double-cliquez sur un en-tête de cellule ou de colonne dans la plage de données, la colonne sera triée par ordre croissant, si vous double-cliquez dessus à nouveau, la colonne sera triée par ordre décroissant à la fois.


Plus d'articles connexes:

Comment changer la valeur de la cellule en cliquant sur la cellule?

Comment filtrer les données simplement en cliquant sur le contenu de la cellule dans Excel?


Les meilleurs outils de productivité de bureau

Kutools for Excel résout la plupart de vos problèmes et augmente votre productivité de 80%

  • Réutilisation: Insérer rapidement formules complexes, graphiques et tout ce que vous avez utilisé auparavant; Crypter les cellules avec mot de passe; Créer une liste de diffusion et envoyer des e-mails ...
  • Barre Super Formula (modifiez facilement plusieurs lignes de texte et de formule); Disposition de lecture (lire et modifier facilement un grand nombre de cellules); Coller dans la plage filtréeplus
  • Fusionner les cellules / lignes / colonnes sans perdre de données; Contenu des cellules divisées; Combiner des lignes / colonnes en double... Empêcher les cellules en double; Comparer les gammesplus
  • Sélectionnez Dupliquer ou Unique Lignes; Sélectionnez les lignes vides (toutes les cellules sont vides); Super Find et Fuzzy Find dans de nombreux classeurs; Sélection aléatoire ...
  • Copie exacte Plusieurs cellules sans changer la référence de formule; Créer automatiquement des références à plusieurs feuilles; Insérer des puces, Cases à cocher et plus encore ...
  • Extrait du texte, Ajouter du texte, Supprimer par position, Supprimer l'espace; Créer et imprimer des sous-totaux de pagination; Conversion entre le contenu et les commentaires des cellulesplus
  • Super filtre (enregistrer et appliquer des schémas de filtrage à d'autres feuilles); Tri avancé par mois / semaine / jour, fréquence et plus; Filtre spécial par gras, italique ...
  • Combiner des classeurs et des feuilles de travail; Fusionner les tableaux en fonction des colonnes clés; Diviser les données en plusieurs feuilles; Conversion par lots xls, xlsx et PDFplus
  • Plus de 300 fonctionnalités puissantes. Prend en charge Office / Excel 2007-2019 et 365. Prend en charge toutes les langues. Déploiement facile dans votre entreprise ou organisation. Essai gratuit de 30 jours. Garantie de remboursement de 60 jours.
onglet kte 201905

Office Tab apporte une interface à onglets à Office et simplifie considérablement votre travail

  • Activer l'édition et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
  • Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
  • Augmente votre productivité de 50% et réduit des centaines de clics de souris chaque jour!
bas de cabine
Commentaires (6)
Pas encore de notes. Soyez le premier à évaluer!
Ce commentaire a été minimisé par le modérateur sur le site
Fonctionne bien pour monter, double-cliquez une 2ème fois comme indiqué pour descendre ne fait rien
Ce commentaire a été minimisé par le modérateur sur le site
Ne fonctionne pas, rien ne se passe, savoir comment créer un module dans vba, l'a fait, enregistré et rien lorsque l'en-tête a double-cliqué. Regle-le, s'il te plait.
Ce commentaire a été minimisé par le modérateur sur le site
No can do crackerjack - ne fonctionne pas
Ce commentaire a été minimisé par le modérateur sur le site
Salut, Rob, Le code ci-dessus fonctionne bien dans mon Excel, pouvez-vous donner une capture d'écran de votre problème ici ?
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour,
der Code funktioniert auch gut bei mir. Allerdings würde ich gerne die oberen beiden Zeilen nicht mit sortieren, da diese die Überschriften sind.
Wie muss ich dann diesen Code ändern?

Merci!
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour ami,
Voici le VBA dont vous avez besoin:

Public blnToggle As Boolean
Sous-feuille de calcul privée_BeforeDoubleClick _
(ByVal Target As Range, Cancel As Boolean)
'Mettre à jour par Extendoffice
Dim LastColumn As Long, keyColumn As Long, LastRow As Long
Dim SortRange As Range
DernièreColonne = _
Cellules.Trouver(Quoi :="*", Après :=Plage("A1"), _
SearchOrder :=xlByColumns, SearchDirection :=xlPrevious).Column
keyColumn = Cible.Colonne
Si keyColumn > LastColumn Then Exit Sub
Application.ScreenUpdating = Faux
Annuler = Vrai
LastRow = Cells(Rows.Count, keyColumn).End(xlUp).Row
On Error Resume Next
Définir SortRange = Target.CurrentRegion
Dim i As Long
i = 2
Définir SortRange = SortRange.Offset(i, 0)
Set SortRange = SortRange.Resize(SortRange.Rows.Count - i, SortRange.Columns.Count)
blnToggle = Pas blnToggle
Si blnToggle = Vrai Alors
SortRange.Sort _
Key1 :=Cells(2, keyColumn), Order1 :=xlAscending, Header :=xlNo
autre
SortRange.Sort _
Key1 :=Cells(2, keyColumn), Order1 :=xlDescending, Header :=xlNo
Si fin
Définir SortRange = Rien
Application.ScreenUpdating = True
End Sub


Si vous avez des en-têtes de 3 lignes, changez simplement "i =2" en "i =3" dans le VBA. J'espère que cela aide. Passe une bonne journée.

Sincèrement,
Mandy
Il n'y a pas encore de commentaires postés ici
Laisser vos commentaires
Publier en tant qu'invité
×
Évaluez cet article:
0   Personnages
Emplacements suggérés