Trier des lignes en fonction d'une date
Fermé
guilau24
-
21 juin 2019 à 14:16
guillaume gdco Messages postés 68 Date d'inscription samedi 15 août 2009 Statut Membre Dernière intervention 30 août 2020 - 27 juin 2019 à 17:14
guillaume gdco Messages postés 68 Date d'inscription samedi 15 août 2009 Statut Membre Dernière intervention 30 août 2020 - 27 juin 2019 à 17:14
A voir également:
- Excel trier ligne en fonction d'une colonne
- Trier colonne excel - Guide
- Déplacer une colonne excel - Guide
- Aller à la ligne excel - Guide
- Formule somme excel colonne - Guide
- Excel fonction si et - Guide
6 réponses
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 711
21 juin 2019 à 15:57
21 juin 2019 à 15:57
Bonjour,
apporter plus d'infos et le fichier code
Faudrait le fichier avec le tableau, modifiez le si infos confidentielles
site de partage:
https://mon-partage.fr/
apporter plus d'infos et le fichier code
Faudrait le fichier avec le tableau, modifiez le si infos confidentielles
site de partage:
https://mon-partage.fr/
guillaume gdco
Messages postés
68
Date d'inscription
samedi 15 août 2009
Statut
Membre
Dernière intervention
30 août 2020
Modifié le 21 juin 2019 à 16:51
Modifié le 21 juin 2019 à 16:51
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 711
21 juin 2019 à 17:03
21 juin 2019 à 17:03
Re,
La date du jour est aujourd'hui si je fais le trsf aujourd'hui pas une autre date??
La date du jour est aujourd'hui si je fais le trsf aujourd'hui pas une autre date??
guillaume gdco
Messages postés
68
Date d'inscription
samedi 15 août 2009
Statut
Membre
Dernière intervention
30 août 2020
21 juin 2019 à 17:10
21 juin 2019 à 17:10
c'est ça, j'exporte un fichier une fois par semaine et j'ai besoin de supprimer toutes les lignes de plus de 28 jours
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 711
21 juin 2019 à 17:17
21 juin 2019 à 17:17
Re,
Ok, je regarde la chose
Ok, je regarde la chose
guillaume gdco
Messages postés
68
Date d'inscription
samedi 15 août 2009
Statut
Membre
Dernière intervention
30 août 2020
21 juin 2019 à 17:30
21 juin 2019 à 17:30
merci
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 711
21 juin 2019 à 18:32
21 juin 2019 à 18:32
Re,
Une facon de faire:
Une facon de faire:
Sub sup_28_jour() Dim Date_Min As Date Date_Min = Date - 28 'date mini a 28 jours With Worksheets("Feuil2") 'adaptez nom de feuille .Range("A1:H1").AutoFilter 'filtre en place With .UsedRange 'plage de cellules utilisees .AutoFilter Field:=5, Criteria1:="<" & CDbl(Date_Min) 'filtre date a 29 jours Set Plage_ST = .Offset(1, 0).Resize(.Rows.Count - 1, .Columns.Count).SpecialCells(xlCellTypeVisible) 'plage de cellules sans les entetes Plage_ST.EntireRow.Delete 'suppression ligne filtrees End With .Range("A1:H1").AutoFilter 'enleve filtre End With End Sub
guillaume gdco
Messages postés
68
Date d'inscription
samedi 15 août 2009
Statut
Membre
Dernière intervention
30 août 2020
22 juin 2019 à 17:29
22 juin 2019 à 17:29
J'ai modifié ainsi:
j'ai modifié .AutoFilter Field:=5 en 8 , le chiffre correspond bien à la colonne?
par contre quand j'exécute la macro, il m'indique que la variable Plage_ST n'est pas définie.
je suppose donc que je dois déclarer la variable avec Dim...
Dim Date_Min As Date
Date_Min = Date - 28 'date mini a 28 jours
With Worksheets("Export") 'adaptez nom de feuille
.Range("A1:H1").AutoFilter 'filtre en place
With .UsedRange 'plage de cellules utilisees
.AutoFilter Field:=8, Criteria1:="<" & CDbl(Date_Min) 'filtre date a 29 jours
Set Plage_ST = .Offset(1, 0).Resize(.Rows.Count - 1, .Columns.Count).SpecialCells(xlCellTypeVisible) 'plage de cellules sans les entetes
Plage_ST.EntireRow.Delete 'suppression ligne filtrees
End With
.Range("A1:H1").AutoFilter 'enleve filtre
End With
j'ai modifié .AutoFilter Field:=5 en 8 , le chiffre correspond bien à la colonne?
par contre quand j'exécute la macro, il m'indique que la variable Plage_ST n'est pas définie.
je suppose donc que je dois déclarer la variable avec Dim...
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 711
23 juin 2019 à 06:57
23 juin 2019 à 06:57
Bonjour,
Oui, si vous avez un Option Exlicit, mais si pas de lignes filtrées il y a erreur (ce que j'ai oublie)
Oui, si vous avez un Option Exlicit, mais si pas de lignes filtrées il y a erreur (ce que j'ai oublie)
Sub test() Dim Date_Min As Date Dim PLage_ST As Range Date_Min = Date - 28 'date mini a 28 jours With Worksheets("Export") 'adaptez nom de feuille .Range("A1:H1").AutoFilter 'filtre en place With .UsedRange 'plage de cellules utilisees .AutoFilter Field:=8, Criteria1:="<" & CDbl(Date_Min) 'filtre date a 29 jours If Range("H2") <> "" Then 'si au moins une lgne filtree Set PLage_ST = .Offset(1, 0).Resize(.Rows.Count - 1, .Columns.Count).SpecialCells(xlCellTypeVisible) 'plage de cellules sans les entetes PLage_ST.EntireRow.Delete 'suppression ligne filtrees End If End With .Range("A1:H1").AutoFilter 'enleve filtre End With End Sub
guillaume gdco
Messages postés
68
Date d'inscription
samedi 15 août 2009
Statut
Membre
Dernière intervention
30 août 2020
23 juin 2019 à 09:43
23 juin 2019 à 09:43
Merci f894009, une fois de plus ça marche parfaitement et me permet d'avancer dans la compréhension du codage
guillaume gdco
Messages postés
68
Date d'inscription
samedi 15 août 2009
Statut
Membre
Dernière intervention
30 août 2020
Modifié le 26 juin 2019 à 21:26
Modifié le 26 juin 2019 à 21:26
donnée que je n'avais pas, dans la colonne où sont les dates ( colonne D), j'ai des lignes avec le texte "dès réception".
je souhaite que c'est lignes ne soient pas exclus comme c'est le cas avec le code actuel qui filtres en fonction de la date
je souhaite que c'est lignes ne soient pas exclus comme c'est le cas avec le code actuel qui filtres en fonction de la date
Dim Date_Min As Date Dim PLage_ST As Range Date_Min = Date - 28 'date mini a 28 jours With Worksheets("Export") 'adaptez nom de feuille .Range("A1:E1").AutoFilter 'filtre en place With .UsedRange 'plage de cellules utilisees .AutoFilter Field:=4, Criteria1:="<" & CDbl(Date_Min) 'filtre date a 29 jours If Range("E2") <> "" Then 'si au moins une lgne filtree Set PLage_ST = .Offset(1, 0).Resize(.Rows.Count - 1, .Columns.Count).SpecialCells(xlCellTypeVisible) 'plage de cellules sans les entetes PLage_ST.EntireRow.Delete 'suppression ligne filtrees End If End With .Range("A1:E1").AutoFilter 'enleve filtre End With
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
guillaume gdco
Messages postés
68
Date d'inscription
samedi 15 août 2009
Statut
Membre
Dernière intervention
30 août 2020
Modifié le 27 juin 2019 à 13:20
Modifié le 27 juin 2019 à 13:20
les lignes "dès réception" se trouve dans la même colonne comportant des dates, la colonne D, j'ai donc inséré comme tu m'avais indiqué, mais ça ne me garde que ligne "dès réception et me supprime les autres
Adaptez les colonnes a filtrer: Sub test() Dim PLage_ST As Range Date_Min = Date - 28 'date mini a 28 jours With Worksheets("Export") 'adaptez nom de feuille .Range("A1:E1").AutoFilter 'filtre en place With .UsedRange 'plage de cellules utilisees .AutoFilter Field:=4, Criteria1:="<" & CDbl(Date_Min) 'filtre date a 29 jours Colonne D .AutoFilter Field:=4, Criteria1:="<>*r?ception*" 'garde les lignes dès réception colonne D If Range("D2") <> "" Then 'si au moins une lgne filtree Set PLage_ST = .Offset(1, 0).Resize(.Rows.Count - 1, .Columns.Count).SpecialCells(xlCellTypeVisible) 'plage de cellules sans les entetes PLage_ST.EntireRow.Delete 'suppression ligne filtrees End If End With .Range("A1:E1").AutoFilter 'enleve filtre End With End Sub
guillaume gdco
Messages postés
68
Date d'inscription
samedi 15 août 2009
Statut
Membre
Dernière intervention
30 août 2020
27 juin 2019 à 17:14
27 juin 2019 à 17:14
c'est bon c'est réglé
Dim PLage_ST As Range Date_Min = Date - 28 'date mini a 28 jours With Worksheets("Export") 'adaptez nom de feuille .Range("A1:E1").AutoFilter 'filtre en place With .UsedRange 'plage de cellules utilisees .AutoFilter Field:=4, Criteria1:="<" & CDbl(Date_Min), Criteria1:="<>*r?ception*" 'filtre date a 29 jours Colonne D If Range("D2") <> "" Then 'si au moins une lgne filtree Set PLage_ST = .Offset(1, 0).Resize(.Rows.Count - 1, .Columns.Count).SpecialCells(xlCellTypeVisible) 'plage de cellules sans les entetes PLage_ST.EntireRow.Delete 'suppression ligne filtrees End If End With .Range("A1:E1").AutoFilter 'enleve filtre End With