Supprimer les lignes de plus de 20 jours

Bonjour,

J'ai besoin, dans c fichier, de supprimer les lignes qui date de plus de 20 jours

J'ai essayé de le faire dans la macro "Clean" (module "Nettoyage"), et qu'elle se lance automatique avec thisworkbook à l'ouverture du fichier.

Je ne parvient pas à le faire, je pense que je sature au niveau recherche et essai, donc je n'avance plus...

Pourriez-vous m'aider ? svp

Le but ensuite est de transférer les lignes supprimées dans un autre fichier excel enregistré à la date de la journée supprimé. Tout ceci sera repris dans PBI afin de créer des indicateurs.

Je vous remercie par avance !

Loïs

Bonjour,

Je propose une v2 de la procédure "Clean":

Sub Cleanv2()
Dim dateCritere As Date
Dim tabDate As Variant
Dim ligFin As Long
Dim ligDep As Integer, criterePeremption As Integer

'initialisations
ligDep = 10
criterePeremption = 20
dateCritere = Date - criterePeremption

With Feuil1
    ligFin = .Range("A" & Rows.Count).End(xlUp).Row

    If ligFin < ligDep Then Exit Sub

    tabDate = .Range("A1", "A" & ligFin).Value

    For i = ligFin To ligDep Step -1
        If tabDate(i, 1) <= dateCritere Then
            .Range("A" & ligDep, "A" & i).EntireRow.Delete
            Exit For
        End If
    Next i
End With
End Sub

Elle fonctionne sur l'hypothèse que le tableau soit bien classé dans l'ordre des dates les plus anciennes aux plus récentes (dernière saisie tout en bas).

C'est moins lourd que de supprimer toutes les lignes de façon unitaire.

Ca fonctionne parfaitement merci beaucoup !

Bonne soirée Ausecour

Bonjour Ausecour,

J'aurais besoin de votre aide une nouvelle fois.

Un critère vient de s'ajouter dans mon tableau. Dernière colonne il n'y a pas que des "Fait", mais des "bloqué type 1", "bloqué type 2", "montage - Date du pointage",...

Serait-il possible d'intégrer dans la macro le fait que le nettoyage se fasse sur :

--> critère 1 : effacer tout ce qu'il y a de + de 20 j (ça c'est OK)

--> critère 2 : Si dans la dernière colonne la valeur contient "Bloqué", on ne supprime pas la ligne peu importe la date.

est-ce possible ?

Merci pour votre aide.

cordialement

Loïs Roussel

PS: je vous joint le fichier avec votre macro intégrée

Bonjour,

Du coup je suis partis sur quelque chose de totalement différent, je me suis cassé un peu les dents car ils veulent les dates au format anglais pour les critères de filtre...

Sub Cleanv3()
Dim LstObj As ListObject
Dim criterePeremption As Integer
Dim Plage As Range

Application.ScreenUpdating = False

'initialisations
criterePeremption = 20
dateCritere = Date - criterePeremption
Set LstObj = ActiveSheet.ListObjects("Tableau1")

'Filtre
LstObj.Range.AutoFilter Field:=1, Criteria1:="<=" & Format(dateCritere, "mm/dd/yy") 'doit être dans ce format
LstObj.Range.AutoFilter Field:=7, Criteria1:="<>*Bloqué*"

'Suppression des plages visibles
Set Plage = LstObj.DataBodyRange.SpecialCells(xlCellTypeVisible)
If Not Plage Is Nothing Then
    Application.DisplayAlerts = False
    Plage.Delete
    Application.DisplayAlerts = True
End If

On Error Resume Next
LstObj.AutoFilter.ShowAllData
On Error GoTo 0
Application.ScreenUpdating = True

End Sub

J'applique deux filtres sur le tableau puis je supprime les données visibles, enfin je rétablis la vue.

Bonjour à tous

Une simple colonne calculant si plus de 20 jours et si fait ou non, et quant besoin un filtre et la touche Supp fait cela en 2 secondes...

Ausecour : Merci beaucoup, c'est tout simplement parfait ! Vous m'enlevez une énorme épine du pied Le code colle parfaitement avec ce que je veux. Merci beaucoup pour le temps passé à m'aider ! Je débute en VBA donc je suis en mode "débrouille" pour la plupart de mes codes et des fois je bloque comme ici et vous m'avez bien aidé !

78chris : Effectivement j'aurais pu faire ce que vous dites mais cela n'aurait pas collé avec mon projet. Ce fichier est la base d'un ensemble de fichier interconnecté qui doivent tous être construit de la même manière afin de faciliter les requêtes. Ajouter une colonne m'aurait bloqué pour la suite, puis il me fallait quelques chose d'automatisé pouvant s'actualiser sans l'intervention de l'homme.

Merci à vous

Bonne journée

RE

il me fallait quelques chose d'automatisé pouvant s'actualiser sans l'intervention de l'homme.
Ausecours n'est pas un robot
Rechercher des sujets similaires à "supprimer lignes jours"