XL 2016 Filtre avancé sur date en vba

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Tableau123

XLDnaute Nouveau
Bonjour,
J'ai un tableau dans lequel je voudrais faire un filtre avancé avec comme critère une date supérieure à aujourd'hui.
En utilisant la fonction filtre avancé sur excel, j'ai bien le résultat qui s'affiche mais dès que j'utilise cette fonction en vba, je n'ai aucun résultat.
Les données sont sur la feuille BASE et le résultat doit se trouver sur la feuille ECHEANCES A VENIR.
J'ai beau cherché sur internet mais, malheureusement, je n'ai rien trouvé.
Pouvez-vous m'aider à résoudre ce problème ?
Ci-joint le fichier en pièce jointe.
Merci beaucoup pour votre aide.
 

Pièces jointes

Bonjour tableau123,
Un essai en PJ avec :
VB:
Sub Worksheet_Activate()
    Application.ScreenUpdating = False                          ' Ecran figé
    Range("A2:G" & Range("A65500").End(xlUp).Row).ClearContents ' Efface matrice de sortie
    DL = Sheets("BASE").Range("A65500").End(xlUp).Row           ' Dernière ligne de Base
    Range("A1:G" & DL) = Sheets("BASE").Range("A1:G" & DL).Value ' Copie tableau en valeur
    With ActiveSheet.UsedRange
        .Columns(2).EntireColumn.Insert                         'Insère une colonne auxiliaire
        With .Columns(2)
            .FormulaR1C1 = "=IF(RC[6]<TODAY(),1,"""")"          ' Insère formule, 1 si < aujourd'hui
            .Value = .Value                                     ' Supprime les formules
            .EntireRow.Sort .Cells, xlDescending                'Tri pour regrouper et accélérer
            On Error Resume Next                                'Si aucune SpecialCell
            .SpecialCells(xlCellTypeConstants, 1).EntireRow.Delete ' Suprime les lignes < aujourd'hui
            .EntireColumn.Delete                                'Supprime la colonne auxiliaire
        End With
    End With
    With ActiveSheet.UsedRange: End With                            'Actualise les barres de défilement
End Sub
La réactualisation s'effectue lorsqu'on sélectionne la feuille Échéance.
 

Pièces jointes

Bonjour,
J'ai un tableau dans lequel je voudrais faire un filtre avancé avec comme critère une date supérieure à aujourd'hui.
En utilisant la fonction filtre avancé sur excel, j'ai bien le résultat qui s'affiche mais dès que j'utilise cette fonction en vba, je n'ai aucun résultat.
Les données sont sur la feuille BASE et le résultat doit se trouver sur la feuille ECHEANCES A VENIR.
J'ai beau cherché sur internet mais, malheureusement, je n'ai rien trouvé.
Pouvez-vous m'aider à résoudre ce problème ?
Ci-joint le fichier en pièce jointe.
Merci beaucoup pour votre aide.
Bonjour,
Une proposition avec ce code
VB:
Sub ECHEANCES_A_VENIR()
    Dim plage
    Feuil2.Cells.Clear
    Set plage = Feuil1.UsedRange
    plage.AutoFilter Field:=7, Criteria1:=">" & Date * 1
    plage.SpecialCells(xlCellTypeVisible).Copy Feuil2.[a1]
    plage.AutoFilter
End Sub
 
Bonjour le fil

La version avec le filtre avancé
(test OK sur Excel 2013)
VB:
Sub Filtre_Avancé_OK()
Dim Criteres As Range
Set Criteres = Range("'ECHEANCES A VENIR'!I1:I2") ' définition plage critères
'On applique le filtre avancé
Sheets("BASE").Range("A1:G11").AdvancedFilter _
    Action:=xlFilterCopy, _
    CriteriaRange:=Criteres, _
    CopyToRange:=Range("'ECHEANCES A VENIR'!Extract"), _
    Unique:=False
End Sub
NB= en I2, la formule est: =">"&AUJOURDHUI()
 
Re

Une version qui tient prend en compte l'agrandissement du tableau sur la feuille BASE.
VB:
Sub Filtre_Avancé_OK_bis()
Dim vBase As Range, Criteres As Range, Recopie As Range
With Sheets("BASE")
    Set vBase = Range(.Cells(1), .Cells(Rows.Count, "G").End(xlUp))
End With
With Sheets("ECHEANCES A VENIR")
    Set Criteres = .[I1:I2] ' définition plage critères
    Set Recopie = .[A1:G1] 'définition plage de recopie
End With
'On applique le filtre avancé
vBase.AdvancedFilter xlFilterCopy, Criteres, Recopie, False
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
16
Affichages
748
Réponses
12
Affichages
696
Réponses
16
Affichages
832
Retour