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 :

tester une valeur dans un PivotTable


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2009
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 63
    Par défaut
    Bonjour à tous

    j'ai dans une vue d'un tableau dynamique sous excel le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.PivotTables(tableau).PivotFields("date").CurrentPage = maDate
    Le soucis, c est que je suis pas sûr que maDate est dans les valeurs dans le champs "date" du tableau.

    Comment puis je faire pour lui dire de mettre une date maDate2 si il trouve pas maDate dans les valeurs du PivotField ?

    Merci d'avance !

    autre façon de voir les choses :
    si je tente de mettre maDate dans le champ, qu'il ne la trouve pas et qu'il me génère une erreur, comment puis je alors lors de l'erreur lui faire changer la valeur à mettre dans le champ?

    Merci d'avance.

  2. #2
    Membre Expert Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Par défaut
    Bonjour,
    c est que je suis pas sûr que maDate est dans les valeurs dans le champs "date" du tableau
    Pourquoi ne pas vérifier si "madate" existe d'abord dans la base qui sert de référence à ton TCD et si elle existe alors tu la séléctionnes sinon tu change de date?

  3. #3
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonjour.

    Tu peux tester la présence de l'élément correspondant, a peu-près comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim pvtIt as Excel.PivotItem
    On Error Resume next
    Set pvtIt = ThisWorkbook.WorkSheets("NomFeuil").PivotTables(tableau).PageFields("Date").PivotItems(maDate)
    if err.number = 0 then
      ThisWorkbook.WorkSheets("NomFeuil").PivotTables(tableau).PageFields("Date").CurrentPage = maDate
    End if
    On error goto 0
    Je remarque que ton champ de page s'appelle Date, ce qui n'est pas bon car c'est un terme réservé en VBA.

    Cordialement,

    PGZ

  4. #4
    Membre confirmé
    Inscrit en
    Janvier 2009
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 63
    Par défaut
    rvtoulon : dans ma requête il y a un tas de dates car je fais une vue par historique. L'idée c est que par défaut, la date choisie soit celle d'hier. Mais il arrive que la date d'hier ne soit pas dans la base (si rien ne s'est passé).

    pgz : je comprends pas le sens de ton goto. Elle est où l'étiquette ? Et pourquoi tu catches l'erreur 0 ? Peux tu préciser un peu le sens de ton code ?

    Merci

  5. #5
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Re,

    Citation Envoyé par zskiredj Voir le message
    pgz : je comprends pas le sens de ton goto. Elle est où l'étiquette ? Et pourquoi tu catches l'erreur 0 ? Peux tu préciser un peu le sens de ton code ?
    Si la date contenue dans maDate n'est pas un élément du champ Date, alors
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set pvtIt = ThisWorkbook.WorkSheets("NomFeuil").PivotTables(tableau).PageFields("Date").PivotItems(maDate)
    Déclenche une erreur.

    Comme on ne veut pas arrêter le code si l'erreur se produit, on commence parMaintenant je peux tester si l'erreur se produit, alors Err.Number sera différent de 0. Mais s'il est = 0, alors pas d'erreur, donc la date est un élément du champ, et je peux choisir cette valeur pour le champ de page.
    Pour finir le ne requiert pass d'étiquette : cette ligne annule simplement le Au total, on teste qu'une valeur existe dans les éléments d'un champ de page avant de choisir cette valeur pour le champ de page. Ce qque tu voulais faire?
    En espérant que cela soit clair,

    PGZ

  6. #6
    Membre Expert Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Par défaut
    pgz c'est bien vu bravo

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/08/2011, 09h11
  2. [RegEx] tester une valeur dans un champ multivalué
    Par omarlet dans le forum Langage
    Réponses: 1
    Dernier message: 25/06/2010, 15h08
  3. Tester une variable dans une liste de valeur
    Par shinta dans le forum VBA Access
    Réponses: 2
    Dernier message: 11/10/2007, 11h53
  4. [XSLT] Tester la non présence d'une valeur dans un fichier
    Par arnauann dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 23/01/2007, 15h29
  5. [vb excel]Tester une valeur dans une ligne
    Par Mugette dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/09/2005, 13h58

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