Menu

Code VBA filtre entre deux dates

Messages postés
77
Date d'inscription
mardi 6 mars 2018
Dernière intervention
27 novembre 2018
- - Dernière réponse : Frenchie83
Messages postés
1849
Date d'inscription
lundi 6 mai 2013
Dernière intervention
14 décembre 2018
- 27 nov. 2018 à 17:48
Bonjour,

j'ai des tableaux croisés dynamiques dans un onglet je veux filtrer tous les TCD d'un onglet précis (car il y a des TCD dans les autres onglets) entre deux dates que je saisie dans une boite de dialogue
Est ce que un expert peut m'aider ?

Merci :-)

Configuration: Windows / Chrome 70.0.3538.102
Afficher la suite 

Votre réponse

2 réponses

Messages postés
1849
Date d'inscription
lundi 6 mai 2013
Dernière intervention
14 décembre 2018
0
Merci
Bonjour,

Un exemple, les dates et les données sont en colonnes I et J, le TCD en A et B

Sub exclure()
    Application.ScreenUpdating = False
    ActiveSheet.PivotTables("Tableau croisé dynamique3").PivotFields("dates_x").ClearManualFilter ' on enlève les filtres précédents
    
    'Exlusion dans le TCD
    DateDeb = [I7] ' date de début choisie
    DateFin = [I16] ' date de fin choisie
    
    Set PosDeb = Columns("A").Find(DateDeb, LookIn:=xlValues) 'on recherche la position de la date de début dans le TCD
    vDeb = PosDeb.Row
    Set PosFin = Columns("A").Find(DateFin, LookIn:=xlValues) 'on recherche la position de la date de fin dans le TCD
    vFin = PosFin.Row
    
    DateDeb = Format([I7], "d/m/yyyy") 'on applique le format de date reconnaissable dans le TCD
    DateFin = Format([I16], "d/m/yyyy") 'on applique le format de date reconnaissable dans le TCD
    
    NbrVal = [A1000].End(xlUp).Row - 1 ' on compte le nombre de valeur dans le TCD
    For i = 2 To NbrVal
        If i < vDeb Or i - 1 > vFin Then ActiveSheet.PivotTables("Tableau croisé dynamique3").PivotFields("dates_x").PivotItems(i - 1).Visible = False  'on masque tout ce qui hors des dates choisies
    Next i
End Sub


Avec le fichier, filtre sur les dates comprises entre le 06/10/18 et le 16/01/18 (dates de début et de fin comprises)
https://www.cjoint.com/c/HKBijNO3Cgw

Ne reste plus qu'à l'adapter

cdlt
SAYRO
Messages postés
77
Date d'inscription
mardi 6 mars 2018
Dernière intervention
27 novembre 2018
-
Bonjour,

Merci beaucoup pour votre réponse,

La macro que vous m'avez proposée est difficile à adapter sur mon fichier je vais vous dire pour quoi:

1-Les dates je les ai pas en colonne mais en filtre sur chaque TCD
2- J'ai plusieurs TCD et non pas un seul
3- J'ai deux cellules: une cellule ou je saisie la date de début et une autre cellule où je saisie la date de fin du filtre ces deux cellules sont dans la feuil1, le filtre sera fait en fonction de ces dates
4- tous les TCD sont dans un un autre onglet en l’occurrence feuil2 et je souhaite faire le filtre sur tous les TCD

Je ne vois pas trop comment je peux adapter votre code sur mon fichier pouvez-vous m'expliquer un peu plus

Merci

Bonne journée
Commenter la réponse de Frenchie83
Messages postés
1849
Date d'inscription
lundi 6 mai 2013
Dernière intervention
14 décembre 2018
0
Merci
1-Les dates je les ai pas en colonne mais en filtre sur chaque TCD
Si vous avez ouvert le fichier joint, il y a un TCD et comme il est placé en colonne A et B, le filtre se fait sur la colonne A(dates), Tcd ou pas les données sont quand même en colonnes.

2- J'ai plusieurs TCD et non pas un seul , il suffit de reproduire le programme pour chaque TCD

3- J'ai deux cellules: une cellule ou je saisie la date de début et une autre cellule où je saisie la date de fin du filtre ces deux cellules sont dans la feuil1, le filtre sera fait en fonction de ces dates . Comme je ne connais la structure de votre fichier, j'ai mis des dates fixes. pour l'adapter à votre fichier , il faut remplacer les dates fixes par les cellules des dates debut et fin.

4- tous les TCD sont dans un un autre onglet en l’occurrence feuil2 et je souhaite faire le filtre sur tous les TCD Peu importe ou se trouve les TCD, ça ne changera rien au fonctionnement, il suffit de mettre les bonnes indications.

Si vous ne savez pas faire, déposez un fichier ayant la même structure , en prenant soin de remplacer auparavant les données confidentielles par des valeurs bidons.

Cdlt
Commenter la réponse de Frenchie83