Imaginez que vous avez un classeur que vous modifiez très souvent. Par exemple, vous pouvez y saisir des données dans une liste d’employés. Avant d’enregistrer et de quitter le classeur, vous souhaitez que la base de données entière soit triée afin que vous n’ayez pas à démarrer le processus de tri la prochaine fois que vous la mettez à jour.
Dès que vous enregistrez le classeur, l’événement suivant, qui trie les données par ordre croissant par nom d’employé démarre.
Private Sub Workbook_BeforeSave _ (ByVal SaveAsUI As Boolean, Cancel As Boolean) Sheets("Employes").Activate ActiveSheet.UsedRange.Select Selection.Sort Key1:= _ Range("A2"), Order1:=xlAscending, Key2:=Range("E2"), _ Order2:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:= _ False, Orientation:=xlTopToBottom End Sub
Commentaires:
Dans la procédure événementielle, un basculement est effectué vers la feuille de calcul Employes et la zone utilisée est marquée à l’aide de la propriété UsedRange. Ensuite, la méthode Sort est utilisée pour trier les données. Le classeur est enregistré immédiatement après le tri.