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.