trier automatique des données lors de la saisie

2 réponses
Avatar
corineprevost1993
Bonjour
S’il vous plait, j’ai une feuille Excel de 22 colonnes (A : V)
Je veux trier les données en fonction des donner de la colonne « A » ordre décroissant.

2 réponses

Avatar
GL
Le 11/02/2021 Í  11:21, corineprevost1993 a écrit :
Bonjour
S’il vous plait, j’ai une feuille Excel de 22 colonnes (A : V)
Je veux trier les données en fonction des donner de la colonne « A » ordre
décroissant.

Il faut implémenter un algorithme de tri en VBA.
Un excellent algorithme est le TimSort (InsertSort + MergeSort).
Sinon Bill Gates n'a pas fourni de fonction tri dans sa fosse Í  purin
logicielle.
--
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus
Avatar
MichD
Le 11/02/21 Í  05:21, corineprevost1993 a écrit :
Bonjour
S’il vous plait, j’ai une feuille Excel de 22 colonnes (A : V)
Je veux trier les données en fonction des donner de la colonne « A » ordre
décroissant.

Bonjour,
Fais un clic droit sur l'onglet de la feuille de calcul, menu contextuel
: "Visualiser le code" / colle la procédure suivante dans la page blanche.
Chaque fois que tu ajouteras ou modifieras le contenu d'une cellule de
la "COLONNE A" seulement, un tri décroissant sera appliqué Í  toute la
plage de A Í  V.
La procédure stipule que la ligne 1 contient des étiquettes de colonnes,
si ce n'est pas le cas, change Header:=xlYes pour Header:=xlNo
'----------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim DerLig As Long
If Not Intersect(Range("A:A"), Target) Is Nothing Then
Application.EnableEvents = False
'Trouver la dernière occupée de la colonne A
DerLig = Columns(1).Find("*", LookIn:=xlValues, _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
With Range("A1:V" & DerLig)
.Sort Key1:=.Item(1), Order1:=xlDescending, Header:=xlYes
End With
Application.EnableEvents = True
End If
End Sub
'----------------------------------
MichD