Filtre tableau selon mois et année

Bonjour,

j'ai un tableau contenu dans la feuille "Intervention"

je voudrais faire un filtre sur les mois en vba par exemple aout 2016 j'ai donc voulu faire un enregistrement de macros il m'a sorti ca

sub test
ActiveSheet.ListObjects("TableauInterventions").Range.AutoFilter Field:=2, _
        Operator:=xlFilterValues, Criteria2:=Array(1, "8/31/2017")
End Sub

sauf que ce tableau est évolutif et donc selon les année et selon le jour des pannes je ne saisirais pas forcement le dernier jour du mois

je voulais savoir si il y avait un moyen de mettre août 2017 par exemple.

sub test
ActiveSheet.ListObjects("TableauInterventions").Range.AutoFilter Field:=2, _
        Operator:=xlFilterValues, Criteria2:=Array(1, "Aout 2017")
End Sub

merci a vous

45gmao-vba-281-29.xlsm (326.71 Ko)

je remonte un peu le sujet et réexplique car je ne sais pas si j'ai été claire

en faite quand on fait un filtre dans le tableau il affiche des mois et des années ce qui me va très bien.

Je voudrais pouvoir en vba lui dire je veux "aout" et "2017"

sauf qu'avec l'enregistreur de macros il me sort une date...

Bonjour

Un essai à tester. Te convient-il ?

Bye !

192gmao-vba-v1.xlsm (294.75 Ko)

Bonjour et merci c'est juste impeccable avec si peu de code... quel talent

petite question ça fait longtemps que tu pratique?

Pourrais tu m'expliquer la variable d = Day(DateSerial(Annee, ListBox1.ListIndex + 2, 1) - 1)

si je ne dis pas de bêtise cela désigne le dernier jour du mois de l'année sectionné?

Merci a toi encore

bonjour

a tester

Private Sub CommandButton1_Click()
   Mois = ListBox1.ListIndex + 1
   Annee = ListBox2.Value
    Choix1 = ">=" & CLng(DateSerial(Annee, Mois, 1))
    Choix2 = "<" & CLng(DateSerial(Annee, Mois + 1, 1))
    If ActiveSheet.FilterMode = True Then ActiveSheet.ShowAllData
     ActiveSheet.ListObjects("TableauInterventions").Range.AutoFilter Field:=2, _
        Criteria1:=Choix1, Operator:=xlAnd, Criteria2:=Choix2
End Sub

A+

Maurice


re

ou comme ca

Private Sub CommandButton1_Click()
   Mois = ListBox1.ListIndex + 1
   Annee = ListBox2.Value
    Choix1 = ">=" & CLng(DateSerial(Annee, Mois, 1))
    Choix2 = "<" & CLng(DateSerial(Annee, Mois + 1, 1))

    ActiveSheet.ListObjects("TableauInterventions").Range.AutoFilter Field:=2, _
        Criteria1:=Choix1, Operator:=xlAnd, Criteria2:=Choix2
End Sub

A+

Maurice

gmb j'ai essayé d'adapter à ta façon mais ça fonctionne pas le filtre est vide j'ai peut etre fait une erreur pour info j'ai mis un point d'arret

il suffit d'aller dans l'onglet Compte_rendu en dernier

puis cliquer sur sauvegarder compte rendu

vous aurez peut être des bug vu qu'il sauvegarde un fichier dans mes répertoires


[quote="archer"]bonjour

a tester

Private Sub CommandButton1_Click()
   Mois = ListBox1.ListIndex + 1
   Annee = ListBox2.Value
    Choix1 = ">=" & CLng(DateSerial(Annee, Mois, 1))
    Choix2 = "<" & CLng(DateSerial(Annee, Mois + 1, 1))
    If ActiveSheet.FilterMode = True Then ActiveSheet.ShowAllData
     ActiveSheet.ListObjects("TableauInterventions").Range.AutoFilter Field:=2, _
        Criteria1:=Choix1, Operator:=xlAnd, Criteria2:=Choix2
End Sub

A+

Maurice


bonjour Maurice,

j'ai éssayé d'adapter a mon application mais ca ne fonctionne pas

    Dim choix1 As Date
    Dim choix2 As Date

    choix1 = ">=" & CLng(DateSerial(année, mois, 1))
    choix2 = "<" & CLng(DateSerial(année, mois + 1, 1))
    If ActiveSheet.FilterMode = True Then ActiveSheet.ShowAllData
     ActiveSheet.ListObjects("TableauInterventions").Range.AutoFilter Field:=2, _
        Criteria1:=choix1, Operator:=xlAnd, Criteria2:=choix2
31gmao-vba-281-29.xlsm (328.61 Ko)

Il m'est difficile d'examiner ton adaptation car les adresses de fichiers et de dossiers qui figurent dans ton code me l'interdisent en créant des bugs.

Toutefois, dans ton fichier, je ne vois pas l'userform qui figurait dans mon fichier et qu'il te faut aussi importer et adapter.

Bye !

du coup j'ai commenté pour que cela fonctionne chez toi

alors pour changer les mois en faite il reprends une listbox que je stock dans la feuille données_pour_tcd

pour le fonctionnement de mon problème:

aller sur feuille1 puis accès au programme

ensuite valider toutes les alertes

aller sur onglet Ajouter/Supprimer et compte rendu

dans la partie compte rendu sélectionner le mois et l'année souhaité puis cliquer sur éditer un compte rendu

Il fait tout un traitement.

La il nous renvoi sur la feuille compte_rendu et il faut cliquer sur sauvegarder compte rendu.

et la j'ai fait un point d’arrêt ou il fait le traitement souhaité.

Merci

45gmao-vba-281-29.xlsm (329.29 Ko)
b.vincent a écrit :

et la j'ai fait un point d’arrêt ou il fait le traitement souhaité.

Mais ... lorsque tu fermes un fichier, les points d'arrêt disparaissent.

Je ne peux donc pas voir où est la ligne de code que tu voudrais m'indiquer.

La macro s'arrête sur la boite de dialogue de l'UserForm ''Fenêtre''

Et je ne suis pas plus avancé.

Bye !

Ha je ne savais pas

il s'agit du module 1 macro "enregistrer_rapport"

Rechercher des sujets similaires à "filtre tableau mois annee"