Filtre TCD sur plage de dates

Hello,

J'aimerai trouver des macros qui me permettent d'afficher dans mon TCD en fonction des plages de dates :

  • Ce mois-ci
  • Le mois dernier
  • Cette année

J'ai mis des filtres dans mon TCD donc tout cela est possible en sélectionnant les bons filtres mais j'aimerai pouvoir faire tout ceci juste avec des boutons ...

Merci d'avance !

Bonjour,

un exemple serait plus facile pour t'expliquer la manip

il faut faire des regroupement, ensuite une sélection (et celle-ci peut faire l'objet d'une macro simple par apprentissage)

Je joins mon fichier en PJ.

Je débute en VBA ^^

7esqdip.xlsm (45.49 Ko)

bonour

salut Steelson

plutôt que VBA, vénérable logiciel qui a fait son temps, passer à Power BI Desktop gratuit

le langage DAX (bien plus facile et fiable que VBA) te fournira toutes les fonctions dont tu rêves et beauuuuucoup plus

le must pour tout utilisateur régulier d'Excel

Je ne peux rien télécharger sur mon ordi pro

Bonjour

Dans un même TCD tu ne peux afficher l'année complète, et le détail de 2 mois seulement

Par ailleurs prend l'habitude de ne pas avoir de ligne vide dans tes tableaux structurés : les formules d'avance ne servent à rien, puisqu'elles se dupliquent automatiquement quand on ajoute des données...

Bonjour

Dans un même TCD tu ne peux afficher l'année complète, et le détail de 2 mois seulement, même en VBA

Par ailleurs prend l'habitude de ne pas avoir de ligne vide dans tes tableaux structurés : les formules d'avance ne servent à rien, puisqu'elles se dupliquent automatiquement quand on ajoute des données...

PowerQuery est intégré à 2016.

Tu peux donc éventuellement l'utiliser pour obtenir ce que tu vises...

Je vais regarder tout ça, merci !

Bonjour,

Un exemple dans le fichier joint.

Tu as aussi la possibilité d''insérer des segments ou une chronologie pour regrouper les dates (années, mois, trimestres, etc...

Et éviter ainsi VBA !...

Cdlt.

19azkaet.xlsm (59.18 Ko)

re à vous tous

tout ordi pro devra avoir Power Query (bon c'est fait pour azkaet dans son Excel récent) et surtout surtout Power BI *

notez que question sécurité, le pire est VBA et pourtant il est installé partout

*version Desktop gratuite à télécharger (tu doisl'exiger, les patrons en sont fous dès qu'ils l'ont vu)

ou version sur navigateur, mais payante (8,40 €/mois)

Re

Un exemple dans le fichier joint.

Tu as aussi la possibilité d''insérer des segments ou une chronologie pour regrouper les dates (années, mois, trimestres, etc...

Et éviter ainsi VBA !...

Effectivement ! moi j'avais compris simultanément, pas alternativement...

Resalut,

J'ai ce code qui me permet de garder dans mon TCD seulement le mois de la date du jour :


Sub ThisMonth_Filter()

'Variable declaration

Dim strMonth As String

Dim strMonthNow As String

Dim X As Object

Dim Y As String

Y = Month(Now) 'Takes the month of today

strMonthNow = Choose(Y, "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December")

With Sheets("Safety & Airworthiness actions").PivotTables("S_PivotTable").PivotFields("Month") 'Active filter just on this array and this filter

For Each X In Sheets("Safety & Airworthiness actions").PivotTables("S_PivotTable").PivotFields("Month").PivotItems 'Read each field of the filter and go through them

'strMonth = X 'Stock the month in a String variable

strMonth = Choose(X, "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December")

If .PivotItems(strMonth) <> .PivotItems(strMonthNow) Then 'if the filter date is different from the current date

.PivotItems(strMonth).Visible = False 'Puts the filter inactive

.PivotItems(strMonthNow).Visible = True

End If

Next

End With

End Sub


Seulement la boucle if semble être le problème mais je ne comprends absolument pas pourquoi ...

Si vous pouviez m'aider ...

Merci

Bonjour,

Il est peut-être temps que tu te familiarises avec la méthode PivotFilters.Add.

https://msdn.microsoft.com/fr-fr/vba/excel-vba/articles/pivotfilters-add-method-excel

Essaie cececi :

Option Explicit

Sub ThisMonth_Filter()
Dim pf As PivotField, strMonth As String, iMonth As String
    iMonth = Month(Now)
    strMonth = Choose(iMonth, "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December")
    Set pf = Sheets("Safety & Airworthiness actions").PivotTables("S_PivotTable").PivotFields("Month")
    With pf
        .ClearAllFilters
        .PivotFilters.Add2 Type:=15, Value1:=strMonth
    End With
End Sub

garder dans mon TCD seulement le mois de la date du jour :

et si tu mettais dans ton fichier une cellule = AUJOURDHUI(), et dans ton tableau une colonne = SI(MOIS(colonnededate) = MOIS(celluleaujourdhui) ; 1 ; "")

ainsi toutes les lignes contenant le mois en cours ont un 1

les autres ont un vide

ensuite tu filtres ton TCD sur cette valeur

pas de VBA

hyper simple, fiable

J'ai une erreur sur cette ligne :

.PivotFilters.Add2 Type:=15, Value1:=strMonth ?

Je n'ai, aussi, pas bien compris à quoi correspond le champ Type ?

pas de VBA

hyper simple, fiable

Pour moi je suis obligée d'utiliser VBA parce que ce tri doit absolument se faire avec un bouton ...

Re,

Regarde l'aide pour la méthode PivotFilters.Add dans le lien fourni...

Cdlt.

pas de VBA

hyper simple, fiable

Pour moi je suis obligée d'utiliser VBA parce que ce tri doit absolument se faire avec un bouton ...

mets un bouton pour actualiser le TCD

ça reste un mini VBA, plus facile à maîtriser

cependant, si tu veux faire un progiciel à base d'Excel, il vaut bien mieux former les utilisateurs que de tenter de leur fournir des automatismes basés sur VBA.

Re,

Joins un petit fichier pour une aide adaptée !...

J'aimerai voir ton champ Month…

Cdlt.

Je pense oui ...

J'ai déjà le code n'afficher que cette année et je veux juste faire pareil pour n'afficher que le mois en cours ...

4azkaet.xlsm (52.72 Ko)
Rechercher des sujets similaires à "filtre tcd plage dates"