Excel 2019 filtre inférieur à la date du jour
Bonjour,
J'utilise excel 2019, j'ai fait une macro avec plusieurs filtres, dont un qui doit filtrer les dates inférieur à la date du jour mais ça ne fonctionne pas
voici ma macro :
Sub FiltrerEtCopier()
Dim wsSource As Worksheet
Dim wsNouveau As Worksheet
Dim dtaujourhui As Date
Dim dernierLigne As Long
'' Définir la feuille source
Set wsSource = ThisWorkbook.Sheets("Feuil1") ' Changez le numéro de la feuille si nécessaire
dtaujourdhui = Date
' Appliquer les filtres
With wsSource
' Filtrer sur la colonne AN (toutes les données sauf vides)
.Range("A1").CurrentRegion.AutoFilter Field:=40, Criteria1:="<>0"
' Filtrer sur la colonne BD (toutes les données sauf vides)
.Range("A1").CurrentRegion.AutoFilter Field:=56, Criteria1:="<>"
' Filtrer sur la colonne BF (toutes les données sauf vides)
.Range("A1").CurrentRegion.AutoFilter Field:=58, Criteria1:="<>"
' Filtrer sur la colonne BA (sur les vides)
.Range("A1").CurrentRegion.AutoFilter Field:=53, Criteria1:="="
' Filtrer sur la colonne BE (toutes les dates inférieures à la date du jour)
.Range("A1").CurrentRegion.AutoFilter Field:=57, Criteria1:="<=" & dtaujourdhui
' Créer une nouvelle feuille
On Error Resume Next
Set wsNouveau = ThisWorkbook.Worksheets("loyer non indexé")
If wsNouveau Is Nothing Then
Set wsNouveau = ThisWorkbook.Worksheets.Add
wsNouveau.Name = "loyer non indexé"
End If
' Copier les en-têtes et les données filtrées
dernierLigne = .Cells(.Rows.Count, 1).End(xlUp).Row
.Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible).Copy Destination:=wsNouveau.Range("A1")
' Supprimer les filtres
.AutoFilterMode = False
End With
MsgBox "Les données ont été filtrées et copiées dans la feuille 'loyer non indexé'.", vbInformation
End Sub
merci d'avance pour votre aide
Bonjour Melanie et bienvenue... quoique
Comme c'est là, vous n'avez pas lu la charte du forum
Le code donné est à mettre entre balises grâce au bouton prévu à cet effet
Je crois que vous ne pouvez pas éditer votre 1er post, sinon faite le et modifiez le
Sinon, il faut que la date soit au format américain,
Donc essayez avec un truc du style :
Dim dtaujourhui As String
dtaujourdhui = Format(Date,"mm.dd.yyyy")A+
Bonjour,
A tout hasard (mais sans fichier ...) les données en "BE" :
- sont elles bien des dates
- sont elles bien au format date (le format des cellules) alignées à droite de la cellule sans utiliser le bouton d'alignement à droite
Des valeurs représentant visuellement une date pour l'humain peuvent ne pas être définies comme date dans Excel mais comme texte (dans ce cas Excel aligne la valeur à gauche de la cellule par défaut)