Barry a une grande feuille de calcul contenant plusieurs milliers de lignes de données.

La colonne B contient une date et il doit supprimer toutes les lignes dans lesquelles la date de la colonne B est antérieure à une date limite spécifique. Barry se demande quel est le moyen le plus simple de le faire pour autant de données.

C’est assez facile à faire, l’approche que vous utilisez dépend de la fréquence à laquelle vous devez le faire et de la manière dont vous souhaitez travailler avec vos données. Si vous ne vous souciez pas de l’ordre dans lequel se trouvent vos données, la méthode la plus simple est ce que j’appelle la méthode « trier et supprimer »:

  1. Sélectionnez la cellule B2. (Cela suppose que B2 est la première date de vos lignes de données car la ligne 1 contient des en-têtes.)

  2. Affichez l’onglet Données du ruban.

  3. Cliquez sur l’outil Trier du plus ancien au plus récent. Excel trie les données en fonction des dates de la colonne B, avec la date la plus ancienne dans la ligne 2.

  4. Sélectionnez et supprimez les lignes qui contiennent des dates avant votre date limite.

Cela fonctionne très bien si vous ne devez effectuer cette tâche que de temps en temps et si cela ne vous dérange pas que les lignes des données soient réorganisées. Si la réorganisation pose un problème, vous pouvez ajouter une colonne à vos données et remplir cette colonne avec des valeurs comprises entre 1 et le nombre de lignes de données dont vous disposez. Vous pouvez ensuite exécuter la méthode «trier et supprimer», mais ensuite récupérer vos données en fonction des valeurs de la colonne que vous avez ajoutée.

Bien sûr, vous pouvez également utiliser une méthode « filtrer et supprimer », qui laissera vos données dans leur ordre d’origine sans avoir besoin d’une colonne d’aide:

  1. Sélectionnez la cellule B2. (Cela suppose que B2 est la première date de vos lignes de données car la ligne 1 contient des en-têtes.)

  2. Appuyez sur Ctrl + Maj + L. Excel applique le filtre automatique à vos données. (Vous devriez pouvoir voir les petites flèches déroulantes à côté des en-têtes de la ligne 1.)

  3. Cliquez sur la flèche déroulante en regard de l’en-tête Date dans la cellule B1. Excel affiche des options de tri et de filtrage.

  4. Passez le pointeur de votre souris sur l’option Filtres de date. Excel affiche encore plus d’options.

  5. Choisissez l’option Avant. Excel affiche la boîte de dialogue Filtre automatique personnalisé.

  6. Dans la case à droite de «Est avant», indiquez une date un jour après votre date limite.

  7. Cliquez sur OK. Excel applique le filtre et vous ne pouvez voir que les lignes qui sont à ou avant votre date limite.

  8. Sélectionnez toutes les lignes, mais pas la ligne 1. (C’est parce que la ligne 1 contient vos en-têtes.)

  9. Affichez l’onglet Accueil du ruban.

  10. Cliquez sur l’outil Supprimer. Excel supprime toutes les lignes sélectionnées.

  11. Affichez l’onglet Données du ruban.

  12. Cliquez sur l’outil Filtre pour supprimer le filtre automatique.

Si vous devez souvent effectuer la tâche de suppression de lignes, vous ne pourrez pas battre la commodité d’utiliser une macro. La macro suivante suppose que vous avez placé la date limite dans la cellule K1. Il saisit cette date, puis examine chaque ligne de vos données, supprimant toutes les lignes antérieures à cette date limite.

Sub DeleteRowsBeforeCutoff()

Dim LastRow As Integer     Dim J As Integer

Application.ScreenUpdating = False     LastRow = Cells(Rows.Count, 2).End(xlUp).Row     For J = LastRow To 1 Step -1         If Cells(J, 2) < [K1] Then             Cells(J, 2).EntireRow.Delete         End If     Next J     Application.ScreenUpdating = True End Sub

ExcelTips est votre source pour une formation Microsoft Excel rentable.

Cette astuce (1566) s’applique à Microsoft Excel 2007, 2010, 2013 et 2016.