Suppression lignes en fonction de la date
Résolu
a51432
Messages postés
39
Statut
Membre
-
a51432 Messages postés 39 Statut Membre -
a51432 Messages postés 39 Statut Membre -
Bonjour,
Je dispose d'un classeur excel dans lequel j'aimerai supprimer toutes les lignes qui ne concernent pas la semaine passée. La date est contenue dans la cellule "I" de chaque ligne et je souhaite garder uniquement les lignes à date J-7 à J-3. Le format de la date dans les cellule est yyyymmdd et le format est standard.
J'ai écrit le code ci-dessous :
Le problème c'est qu'il ne garde que la date du dernier vendredi (J-3, variable : dVen).
Merci pour votre aide !
Cordialement,
Je dispose d'un classeur excel dans lequel j'aimerai supprimer toutes les lignes qui ne concernent pas la semaine passée. La date est contenue dans la cellule "I" de chaque ligne et je souhaite garder uniquement les lignes à date J-7 à J-3. Le format de la date dans les cellule est yyyymmdd et le format est standard.
J'ai écrit le code ci-dessous :
Sub test()
Application.ScreenUpdating = False
Dim derLig, i As Long
Dim dLun, dMar, dMer, dJeu, dVen
dLun = Format(Now() - 7, "yyyymmdd")
dMar = Format(Now() - 6, "yyyymmdd")
dMer = Format(Now() - 5, "yyyymmdd")
dJeu = Format(Now() - 4, "yyyymmdd")
dVen = Format(Now() - 3, "yyyymmdd")
With Workbooks("Classeur").Sheets("Feuil1")
derLig = .Range("A" & .Rows.Count).End(xlUp).Row
For i = derLig To 2 Step -1
If .Cells(i, 9) <> dLun And .Cells(i, 9) <> dMer And .Cells(i, 9) <> dMar And .Cells(i, 9) <> dJeu And .Cells(i, 9) <> dVen Then
.Cells(i, 9).EntireRow.Delete
End If
Next i
End With
Application.ScreenUpdating = True
End Sub
Le problème c'est qu'il ne garde que la date du dernier vendredi (J-3, variable : dVen).
Merci pour votre aide !
Cordialement,
A voir également:
- Suppression lignes en fonction de la date
- Forcer la suppression d'un fichier - Guide
- Fonction si et - Guide
- Partage de photos en ligne - Guide
- Mètre en ligne - Guide
- Formulaire en ligne de meta - Guide
2 réponses
Bonjour,
Sub test() Application.ScreenUpdating = False Dim derLig, i As Long Dim dLun, dVen dLun = Now() - 7 dVen = Now() - 3 With Workbooks("Classeur1").Sheets("Feuil1") derLig = .Range("A" & .Rows.Count).End(xlUp).Row For i = derLig To 2 Step -1 If .Cells(i, 9) < dLun Or .Cells(i, 9) > dVen Then .Cells(i, 9).EntireRow.Delete End If Next i End With Application.ScreenUpdating = True End Sub
Malheureusement avec ce code, toutes les lignes de ma feuille sont supprimées.