Gene recherche un moyen de supprimer rapidement des données d’une feuille de calcul en fonction de la date dans une colonne particulière. Si la date est plus ancienne qu’aujourd’hui (la date est passée), la ligne doit être supprimée.

Cela peut être fait assez facilement avec une macro. Tout ce que vous avez à faire est de faire défiler la macro dans les données et de comparer la date de chaque ligne à la date du jour. Si la date est inférieure à aujourd’hui, la méthode Delete est utilisée sur l’objet EntierRow.

Sub DeleteRows1()

Dim x As Long     Dim iCol As Integer

iCol = 7 'Filter all on Col G

For x = Cells(Cells.Rows.Count, iCol).End(xlUp).Row To 2 Step -1         If Cells(x, iCol).Value < Date Then             Cells(x, iCol).EntireRow.Delete         End If     Next End Sub

Dans cet exemple, la macro vérifie la colonne G (dans la variable iCol) pour la date. Si votre date se trouve dans une colonne différente, vous devez apporter la modification à la variable. Selon le nombre de lignes de données dans votre feuille de calcul, la macro peut également prendre un certain temps à s’exécuter.

Si vous remarquez un retard dans les performances, vous pouvez utiliser une approche différente. L’exemple suivant utilise les fonctionnalités de filtre automatique d’Excel pour d’abord filtrer les données afin d’afficher uniquement les anciennes données, puis supprime ces lignes.

Sub DeleteRows2()

Dim Dates As Range     Dim nRows As Double     Dim currDate As Variant

'Format dates as text     Range("Dates").NumberFormat = "@"

'Today's date in number format     currDate = CDbl(Date)

Range("Dates").AutoFilter Field:=1, _       Criteria1:="<" & currDate     nRows = Range("Dates").Rows.Count     Rows("2:" & nRows).Select     Selection.Delete Shift:=xlUp     Range("Dates").AutoFilter     Range("Dates").NumberFormat = "m/d/yyyy"

Range("C2").Select End Sub

Cette macro suppose que vous avez franchi l’étape d’attribution d’un nom à votre plage de données. Sélectionnez toutes les cellules de votre tableau de données, y compris toute ligne d’en-tête, et donnez-lui le nom «Dates». Lorsque vous exécutez la macro, il utilise cette plage comme cible pour le filtre automatique.

_Note: _

Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.

lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur].

ExcelTips est votre source pour une formation Microsoft Excel rentable.

Cette astuce (10783) s’applique à Microsoft Excel 2007, 2010, 2013, 2016, 2019 et Excel dans Office 365. Vous pouvez trouver une version de cette astuce pour l’ancienne interface de menu d’Excel ici:

link: / excel-Deleting_Old_Data_from_a_Worksheet [Suppression d’anciennes données d’une feuille de travail].