XL 2010 [Résolu] - Afficher 3 derniers mois dans un graphique dynamique - VBA

grhum29

XLDnaute Junior
Bonjour,

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 :

VB:
With ActiveSheet.PivotTables("TCD_CONSO_SUIVI_CONSO_ANNUEL").PivotFields( _
        "Mois ")
        .PivotItems("janvier").Visible = False
        .PivotItems("février").Visible = False
        .PivotItems("mars").Visible = False
        .PivotItems("avril").Visible = False
        .PivotItems("mai").Visible = False
        .PivotItems("juin").Visible = True
        .PivotItems("juillet").Visible = True
        .PivotItems("août").Visible = True
        '.PivotItems("septembre").Visible = False
        '.PivotItems("octobre").Visible = False
        '.PivotItems("novembre").Visible = False
        '.PivotItems("décembre").Visible = False
    End With

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.

Merci de votre aide.

Cordialement,
 

grhum29

XLDnaute Junior
Re bonjour,

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...

Je vous mets en pièces jointes les 3 fichiers.

Merci de votre aide.

Cordialement,
 

Pièces jointes

  • fichier_genere.xlsx
    21.5 KB · Affichages: 25
  • fichier_macro.xlsm
    25.3 KB · Affichages: 28
  • histo_conso_vehicule.txt
    822 bytes · Affichages: 22

chris

XLDnaute Barbatruc
Bonjour
Coucou mutzik :)

Ton fichier Macro est protégé.

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.
 

Pièces jointes

  • fichier_genereXLD.xlsx
    22.2 KB · Affichages: 35

Discussions similaires

Réponses
10
Affichages
653

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
314 628
Messages
2 111 337
Membres
111 105
dernier inscrit
Joffrette