IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Filtrer sur une date un tableau croisé dynamique


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Femme Profil pro
    Formatrice bureautique
    Inscrit en
    Septembre 2007
    Messages
    202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 47
    Localisation : Suisse

    Informations professionnelles :
    Activité : Formatrice bureautique

    Informations forums :
    Inscription : Septembre 2007
    Messages : 202
    Points : 79
    Points
    79
    Par défaut Filtrer sur une date un tableau croisé dynamique
    Bonjour l'équipe,

    Je bloque sur un problème avec un tableau croisé dynmique. Mon objectif est qu'en activant une macro, celle-ci modifie le filtre des dates en allant rechercher des critères dates dans des cellules. J'ai donc ajouter deux variables Janvier_deb et Janvier_fin par exemple.

    Dans le code qui change le filtre, j'ai remplacé les critères dates placés entre "" par mes deux variables sans les "".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    jan_deb = Sheets("Saisie Contacts").Range("A2").Value
    jan_fin = Sheets("Saisie Contacts").Range("A32").Value
     
     
        ActiveSheet.ChartObjects("GE_Janvier").Activate
            Sheets("GE_Jan").PivotTables("TCD_GE_Janvier").PivotFields("Premier contact"). _
            ClearAllFilters
        Sheets("GE_Jan").PivotTables("TCD_GE_Janvier").PivotFields("Premier contact"). _
            PivotFilters.Add Type:=xlDateBetween, Value1:=jan_deb, Value2:= _
            jan_fin
    Je ne comprends par pourquoi mais quand j'exécute la macro, il bug sur les deux valeurs et me donne l'erreur 1004 "La date tapée n'est pas valide". La cellule qui contient la variable est bien en format date...

    Est-ce que quelqu'un a déjà eu le même problème que moi ?

    Merci pour votre aide précieuse

  2. #2
    Membre habitué
    Homme Profil pro
    Consultant comptable
    Inscrit en
    Mai 2011
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant comptable

    Informations forums :
    Inscription : Mai 2011
    Messages : 137
    Points : 160
    Points
    160
    Par défaut
    tente, a tout hasard, de dimensionner tes variables en date (au démarrage), et de convertir en cdate() tes variable

  3. #3
    Membre régulier
    Femme Profil pro
    Formatrice bureautique
    Inscrit en
    Septembre 2007
    Messages
    202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 47
    Localisation : Suisse

    Informations professionnelles :
    Activité : Formatrice bureautique

    Informations forums :
    Inscription : Septembre 2007
    Messages : 202
    Points : 79
    Points
    79
    Par défaut
    J'ai déjà ajouté la définition de la variable en commençant mon code par

    Dim jan_deb as date
    Dim jan_fin as date

    en vain... Par contre, t'entends quoi par convertir mes variables en cdate ?

  4. #4
    Membre habitué
    Homme Profil pro
    Consultant comptable
    Inscrit en
    Mai 2011
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant comptable

    Informations forums :
    Inscription : Mai 2011
    Messages : 137
    Points : 160
    Points
    160
    Par défaut
    t'es 2 variables la

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    jan_deb = Sheets("Saisie Contacts").Range("A2").Value
    jan_fin = Sheets("Saisie Contacts").Range("A32").Value
    tu les converti pas CDATE() soit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    jan_deb = cdate(Sheets("Saisie Contacts").Range("A2").Value)
    jan_fin = cdate(Sheets("Saisie Contacts").Range("A32").Value)

  5. #5
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Bonjour à tous,

    Si les dates dans les cellules sont déjà de vraies dates (et pas du texte), la conversion est inutile.
    Pour le savoir, il suffit de changer l'affichage en numérique.
    Si les dates sont converties en nombres, ce sont de vraies dates.

Discussions similaires

  1. Réponses: 5
    Dernier message: 24/10/2014, 12h42
  2. Réponses: 2
    Dernier message: 15/09/2011, 16h42
  3. [AC-2007] décimales sur champ dans un tableau croisé dynamique
    Par GILLES_M dans le forum IHM
    Réponses: 2
    Dernier message: 31/10/2010, 17h35
  4. Date dans tableau croisé dynamique
    Par guyanais dans le forum Excel
    Réponses: 6
    Dernier message: 10/02/2009, 21h05
  5. Format date dans tableau croisé dynamique
    Par le_gueux90 dans le forum Excel
    Réponses: 1
    Dernier message: 22/06/2007, 11h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo