Bonjour à tous !
Je débute en VBA, et je suis de suite confronté à un problème (j'imagine) simple :
Je souhaite créer une macro me permettant de filtrer une colonne comprenant des dates, ce filtre ne fera apparaître que les dates comprises entre 2 dates extrêmes.
Mon objectif final :
Je suis en charge d'un plan d'action pour mon entreprise. Chaque mois, nous rentrons environ 25 actions.
Un de nos indicateurs permet de visualiser depuis combien de temps les actions en cours sont ouvertes :
- Si, il y a de cela entre 2 mois et 3 mois, j'ai ouvert 25 actions et qu'entre temps j'en ai clôturé 15, le graphique affichera sur la valeur de l'axe "2 mois' la valeur "10" sous forme de barre.
- Si je clic sur la valeur de l'axe "2 mois", je souhaite qu'une macro associée à ce texte me filtre automatiquement (sur une autre feuille) toutes les actions encore ouvertes qui datent de aujourd'hui-2 mois <= action non clôturée < aujourd'hui-3 mois.
Mon intervalle de dates limites se trouvent dans un tableau me permettant de générer mon indicateur, elles sont évolutives en fonction de la date du jour ce qui veut dire que des actions peuvent basculer d'un intervalle à l'autre en fonction de la date du jour.
J'ai essayé cette méthode la (voir ci-dessous) mais cela ne marche pas :
Mon Range est aussi vaste car je prend en compte tout mon tableau, me facilitant les copier/coller
Dans la feuille 2021 Graphe en D126 : =MOIS.DECALER(AUJOURDHUI();-2)
Dans la feuille 2021 Graphe en D127 : =MOIS.DECALER(AUJOURDHUI();-3)
J'ai essayé également avec un AutoFilter
Ou encore en intégrant directement la formule
impossible de trouver la solution; je ne sais pas comment intégrer une formule à mon criteria1 / criteria2
Pouvez-vous m'aider SVP ?
N'hésitez pas si vous avez besoin de plus d'informations.
PS : Toutes les informations de mon fichier sont confidentielles, je ne peux donc pas vous transmettre de captures d'écran...
Merci d'avance !
Je débute en VBA, et je suis de suite confronté à un problème (j'imagine) simple :
Je souhaite créer une macro me permettant de filtrer une colonne comprenant des dates, ce filtre ne fera apparaître que les dates comprises entre 2 dates extrêmes.
Mon objectif final :
Je suis en charge d'un plan d'action pour mon entreprise. Chaque mois, nous rentrons environ 25 actions.
Un de nos indicateurs permet de visualiser depuis combien de temps les actions en cours sont ouvertes :
- Si, il y a de cela entre 2 mois et 3 mois, j'ai ouvert 25 actions et qu'entre temps j'en ai clôturé 15, le graphique affichera sur la valeur de l'axe "2 mois' la valeur "10" sous forme de barre.
- Si je clic sur la valeur de l'axe "2 mois", je souhaite qu'une macro associée à ce texte me filtre automatiquement (sur une autre feuille) toutes les actions encore ouvertes qui datent de aujourd'hui-2 mois <= action non clôturée < aujourd'hui-3 mois.
Mon intervalle de dates limites se trouvent dans un tableau me permettant de générer mon indicateur, elles sont évolutives en fonction de la date du jour ce qui veut dire que des actions peuvent basculer d'un intervalle à l'autre en fonction de la date du jour.
J'ai essayé cette méthode la (voir ci-dessous) mais cela ne marche pas :
VB:
Sheets("2021 Suivi des actions").Range("$B$5:$AD$253").AdvancedFilter Action:=xlFilterInPlace, Criteria1Range:=Range("'2021 Graphe'!D126:'2021 Graphe'!D127"), Unique:=False
Dans la feuille 2021 Graphe en D126 : =MOIS.DECALER(AUJOURDHUI();-2)
Dans la feuille 2021 Graphe en D127 : =MOIS.DECALER(AUJOURDHUI();-3)
J'ai essayé également avec un AutoFilter
Code:
Sheets("2021 Suivi des actions").Range("$B$5:$AD$253").AutoFilter Field:=8, Criteria1:=">=""'2021 Graphe'!D126", Criterial2:="<""'2021 Graphe'!D127"
Code:
Sheets("2021 Suivi des actions").Range("$B$5:$AD$253").AutoFilter Field:=8, Criteria1:=">=""=MOIS.DECALER(AUJOURDHUI();-2)", Criterial2:="<""MOIS.DECALER(AUJOURHUI();-3)"
Pouvez-vous m'aider SVP ?
N'hésitez pas si vous avez besoin de plus d'informations.
PS : Toutes les informations de mon fichier sont confidentielles, je ne peux donc pas vous transmettre de captures d'écran...
Merci d'avance !