Je fais à nouveau appel à vous car je bloque sur un point.
Je travaille sur un fichier VBA qui doit créer un graphique dynamique et mettre en forme des données mois par mois depuis le début de l'année. Ce graphique sera sorti tous les débuts de mois et je souhaite par défaut que ma macro filtre sur les 3 derniers mois en fonction du mois en cours.
Exemple : pour la sortie de ce graphique début Septembre, je souhaite filtrer uniquement sur les mois de Juin, Juillet et Août.
Actuellement mes données mois sont présentées sous forme de chaîne de caractères (ex : Août, Septembre...) et j'utilise le code suivant pour afficher les mois que je souhaite afficher :
Sauf que ce code n'est actuellement pas dynamique et lorsqu'on va passer en Octobre et ben ça ne fonctionnera plus...
J'ai déclaré une variable pour récupérer le mois en cours en lettre mais ensuite je ne vois pas comment faire pour récupérer les valeurs des 3 derniers mois qui sont donc Juin, Juillet et Août pour ce mois ci.
VB:
Dim Mois_En_Cours As String
Mois_En_Cours = Format(Now, "mmmm")
Après il faut mettre en place une condition mais c'est la que je sèche.
Pouvez-vous me dire comment est ce que je peux faire pour arriver à ce que je souhaite mettre en place.
Je ne peux pas faire ce que je veux car en fait la macro complète (Cf. fichier "fichier_macro.xlsm") ouvre un fichier texte à plat (cf. "histo_conso_vehicule.txt") qui est généré dans un autre programme et le fichier "fichier_macro.xlsm" est appelé depuis cet autre programme pour la mise en forme.
Les champs présents dans ce fichier sont les champs de la base de données.
Une fois ce fichier ouvert dans Excel, la macro met en forme les données (Cf. onglet masqué dans le fichier "fichier_genere.xlsx") puis construit le graphique croisé dynamique...
Quoi qu'il en soit voici une solution avec 2 colonnes supplémentaires sur la source : la formule de la colonne Filtrer est basé sur les 3 derniers mois de la source mais peut être adaptée pour tenir compte de la date courante.