Filtrer selon le mois en cours

Bonjour,

j'ai crée un code pour filtrer des données,

mais je veux que ce code filtre les date et m'affiche les date du mois en cours

voici mon code : je mets quoi dans criteria1 ::

With Sheets("TRVX EN COURS")  ' agit sur la feuille "TRVX EN COURS"
On Error Resume Next           'en cas d'erreur (pas de données à filtrer),on poursuit la procédure

'filtre le tableau sur la colonne 5 sur le mois en cours automatiquement

.ListObjects("Tableau1").Range.AutoFilter Field:=5, Criteria1:="???????????"

End With

MERCIIIIIII

Bonjour,

A tester !...

Cdlt.

24imad-sio.xlsm (22.25 Ko)
Option Explicit

Dim lo As ListObject

Public Sub FilterData()
    Set lo = Range("Data").ListObject
    lo.Range.AutoFilter _
            Field:=1, _
            Criteria1:=7, _
            Operator:=11
End Sub

Public Sub Reset()
    Set lo = Range("Data").ListObject
    If lo.ShowAutoFilter Then lo.AutoFilter.ShowAllData
End Sub

Bonjour jean éric,

ça marche à merveille ton code, je te remercie énormément

mais explique moi stp pourquoi mon code ne fonctionne pas, il me filtre mais en vide quand je mets criteria1= date

.ListObjects("Tableau1").Range.AutoFilter Field:=5, Criteria1:=date

merci

imad

Re,

Il ne faut pas hésiter à utiliser l'aide (touche F1).

Consulte les liens pour appréhender la chose...

Cdlt.

Public Sub FilterData_2()
'Range.AutoFilter method (Excel)
'https://docs.microsoft.com/en-us/office/vba/api/excel.range.autofilter
'Enumerations (constantes) :
'https://docs.microsoft.com/en-us/office/vba/api/excel.xldynamicfiltercriteria
'XlDynamicfilterCriteria
'https://docs.microsoft.com/en-us/office/vba/api/excel.xlautofilteroperator
'XlAutoFilterOperator
    Set lo = Range("Data").ListObject
    lo.Range.AutoFilter _
            Field:=1, _
            Criteria1:=xlFilterThisMonth, _
            Operator:=xlFilterDynamic
End Sub

Re Jean-Eric,

ça marche très bien, merci,

après avoir utilisé mon filtre de date qui se trouve au niveau de la colonne H (field 8), je souhaite copié ce qui est visible, mais que les colonnes B jusqu'à L. et ne pas copier les autres colonnes

Comment faire ?

merci

imad

Re,

Joins un fichier avec des explications pour le copier/coller.

Cdlt.

'Enlever les filtres actifs
'Filtrer le mois en cours de la colonne H DATE OBJECTIF pour sélectionner les préventifs à faire dans le mois
'Copier les lignes filtrées des colonnes B à L
'Coller les valeurs des lignes filtrées des colonnes B à L du fichier MAINTENANCE PREVENTIVE PROGRAMMEE

Sub préventif_mois_encours()

Dim WB_D As Workbook
Dim REP()
Dim A%
REP = Array("D")   ' declaration des noms du disque
For A = 0 To UBound(REP)
Set WB_D = Workbooks.Open(REP(A) & ":\Nouveau dossier\MAINTENANCE PREVENTIVE PROGRAM.xlsx")
Worksheets("programme global").Select
With Worksheets("programme global")
If .FilterMode = True Then .ShowAllData   'RETIRER TOUS LES FILTRES
End With
Dim lo As ListObject
'Filtrer selon la date en cours
Set lo = Range("tableau6").ListObject
    lo.Range.AutoFilter _
    Field:=8, _
    Criteria1:=xlFilterThisMonth, _
    Operator:=xlFilterDynamic
Next A
' je souhaite copier les colonnes visibles de B jusqu'à L

End Sub

Re,

A adapter.

Cdlt.

Public Sub préventif_mois_encours()
Dim ws As Worksheet, lo As ListObject
Dim rng As Range, rng2 As Range
    Set lo = Range("tableau6").ListObject
    With lo
        If .ShowAutoFilter Then lo.AutoFilter.ShowAllData
        .Range.AutoFilter _
                Field:=8, _
                Criteria1:=xlFilterThisMonth, _
                Operator:=xlFilterDynamic
        With .AutoFilter.Range
            On Error Resume Next
            Set rng2 = .Offset(1, 0).Resize(.Rows.Count - 1, 1).SpecialCells(xlCellTypeVisible)
            On Error GoTo 0
        End With
    End With
    If rng2 Is Nothing Then
        MsgBox "Il n'y a pas de données à copier", 64, "Information"
    Else
        Set ws = Worksheets.Add
        Set rng = lo.AutoFilter.Range.Offset(, 1).Resize(, 10)
        rng.SpecialCells(xlCellTypeVisible).Copy
        With ws.Cells(1)
            .PasteSpecial xlPasteValuesAndNumberFormats
            .PasteSpecial xlPasteFormats
            .PasteSpecial xlPasteColumnWidths
        End With
        Application.CutCopyMode = 0
    End If
End Sub
4trvx-en-cours.xlsm (167.89 Ko)

re jean eric,

je t'explique,

je veux filtrer le ficher maintenance preventive programme, la colonne H sur la date en cours,

puis copier le résultat de ce filtrage(partie visible) mais que les colonnes B C D E F G H I J K L, dans le fichier trvx en cours à partid de la colonne E

merci a toi

Rechercher des sujets similaires à "filtrer mois cours"