VBA : Obtenir tableau en fonction de 2 variables

Bonjour à tous,

étant un novice en matière de VBA je rencontre des soucis sur un exercice.

J'aimerais pouvoir à partir de 2 variables de date : Date de début et Date de fin obtenir les parcelles de tableau que je souhaite.

Par exemple:

Date Début = 20/01/19

Date Fin = 23/01/19

Et obtenir les lignes de tableau du 20/01 au 23/01, est-ce que cela et possible et si oui comment ?

Merci d'avance

PS: voici mon xlsm en piece jointe

10projet.xlsm (43.78 Ko)

Bonjour et bienvenue sur le forum

Un essai à tester. Te convient-il ?

Bye !

7projet-v1.xlsm (48.22 Ko)

Bonjour,

Un exemple VBA et Tableau croisé dynamique (TCD).

Tu as la possibilité d'utiliser des segments. ?

Cdlt.

5razers.xlsm (43.36 Ko)
Option Explicit

Dim pt As PivotTable

Public Sub Filter_PT()
    Set pt = ActiveSheet.PivotTables(1)
    pt.ClearAllFilters
    pt.PivotFields("Date").PivotFilters.Add _
            Type:=xlDateBetween, _
            Value1:=CStr(ActiveSheet.Cells(2, 6)), _
            Value2:=CStr(ActiveSheet.Cells(3, 6))
End Sub

Public Sub RemoveFilters()
    Set pt = ActiveSheet.PivotTables(1)
    pt.ClearAllFilters
End Sub

Merci beaucoup pour vos réponses Gmb et Jean-Eric, surtout aussi rapidement !

Vôtre code GMB ne fonctionnait pas pour moi car les données étaient détériorées.

En revanche, Jean-Eric votre code marche parfaitement toutefois j'aimerais comprendre comment le code fonctionne et si toutefois je veux utiliser donc ce TCD sur une autre worksheet dois-je modifier pleinement ce code ? Si cela est possible pour vous, bien evidemment.

Bonjour,

Il suffit de préciser le nom de la feuille et le nom du tableau croisé dynamique TCD).

Dans Options du TCD, modifier le nom par défaut.

Cdlt.

Option Explicit

Dim pt As PivotTable

Public Sub Filter_PT()
    Set pt = Worksheets("Feuil1").PivotTables("TCD_1")
    pt.ClearAllFilters
    pt.PivotFields("Date").PivotFilters.Add _
            Type:=xlDateBetween, _
            Value1:=CStr(ActiveSheet.Cells(2, 6)), _
            Value2:=CStr(ActiveSheet.Cells(3, 6))
End Sub

Public Sub RemoveFilters()
    Set pt = Worksheets("Feuil1").PivotTables("TCD_1")
    pt.ClearAllFilters
End Sub

Merci Beaucoup pour votre aide !

En revanche, je ne comprends pas comment vous avez réussi à retirer les formats de base (Somme) des colonnes dans le TCD car par défaut cela ne fait pas pareil que votre programme...

Re,

Je ne comprends pas tout !...

Cdlt.

Bonjour à tous

Vôtre code GMB ne fonctionnait pas pour moi car les données étaient détériorées.

Nouvelle version.

Bye !

4projet-v2.xlsm (48.84 Ko)

Merci beaucoup Jean-Eric, j'ai compris finalement : les colonnes du TCD me faisaient des sommes du coup je ne voyais pas le dates ligne par ligne avec leurs données mais j'ai réussi à le résoudre !

Rebonjour,

Finalement j'ai encore un petit problème haha.

Je n'arrive pas à implémenter et à faire fonctionner votre code de filtre avec mon TCD savez-vous où cela plante ? @Jean-Eli

Merci d'avance

PS: cela ce situe dans le module "PivotTableProg"

5c3.xlsm (93.39 Ko)

Problème résolu finalement merci beaucoup pour votre aide

Rechercher des sujets similaires à "vba obtenir tableau fonction variables"